You need to enable JavaScript to run this app.
导航

同步完成通知接口(done)

最近更新时间2023.05.19 11:24:15

首次发布时间2022.04.13 17:53:20

配合同步接口(write)使用。
数据预同步、历史数据同步、增量天级数据同步都是以为单位导入数据,导入完成后必须调用done接口(done接口传输的数据日期与write接口上传数据的日期保持一致写入传输完成标识),服务端接收到该标识才会开启数据入库+归档。

调用方法

DoneResponse done(List dateList, String topic, Option... opts)

方法参数

参数

类型

说明

dateList

List

该字段表示此次调用done方法需要同步的日期列表,即允许一次同步多天
如不传日期参数或日期列表为空,则默认本次done方法的调用代表着前一天的数据传输完成

topic

String

同步完成的场景,和数据上传场景保持一致

opts

Option[]

请求中可选参数,具体使用方式见用例示范

方法返回

使用自定义的DoneResponse类作为响应类型,具体参数如下表所示。在获取到DoneResponse类型的返回值后可调用它的getStatus()方法判断此次数据上传是否成功。

参数

类型

说明

获取方法

code

int

状态码

getCode

message

String

请求结果信息

getMessage

示例

import volcengine.byteair.ByteairClient;
import volcengine.byteair.ByteairClientBuilder;
import volcengine.common.protocol.VolcengineCommon;
import volcengine.core.BizException;
import volcengine.core.NetException;
import volcengine.core.Option;
import volcengine.core.Region;
import volcengine.core.metrics.MetricsCollector;

import java.time.LocalDate;
import java.util.*;


public class Example {


    public static ByteairClient byteairClient;


    // 示例省略public static void init()
    // 某些语法可能在低版本JDK报错,请根据需求替换成等价语法.
    public static void done() {
        LocalDate date = LocalDate.of(2022, 1, 1);
        // 已经上传完成的数据日期,可在一次请求中传多个
        List<LocalDate> partitionDateList = Collections.singletonList(date);
        // 与离线天级数据传输的topic保持一致
        String topic = "item";
        Option[] opts = new Option[]{
                // 预同步("pre_sync"),历史数据同步("history_sync"),增量天级同步("incremental_sync_daily"),增量实时同步("incremental_sync_streaming")
                Option.withStage("pre_sync"),
                Option.withRequestId(UUID.randomUUID().toString()),
        };

        
        VolcengineCommon.DoneResponse doneResponse;
        try {
            doneResponse = byteairClient.done(partitionDateList, topic, opts);
        } catch (BizException | NetException e) {
            System.out.printf("[done] occur error, msg:%s \n", e.getMessage());
            return;
        }
        if (!doneResponse.getStatus().getSuccess()) {
            System.out.println("[done] failure");
            return;
        }
        System.out.printf("[done] success");
    }
}