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

同步完成通知接口(done)

最近更新时间2023.12.08 17:45:33

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

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

调用方法

done(self, date_list: Optional[list], topic: str, *opts: Option) -> DoneResponse

方法参数

参数

类型

说明

date_list

list[datetime]

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

topic

str

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

opts

Option[]

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

方法返回

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

参数

类型

说明

获取方法

code

int

状态码

response.status.code

message

String

请求结果信息

response.status.message

示例

import uuid
from datetime import datetime

from byteair import ClientBuilder, Client
from byteair.protocol.volcengine_byteair_pb2 import *
from core import Region, Option, NetException, BizException, metrics


# 示例省略client初始化过程


def done():
    date_list = [datetime(year=2022, month=1, day=1)]
    # topic为枚举值,请参考API文档
    topic = "item"
    opts = (
        # 预同步("pre_sync"),历史数据同步("history_sync"),增量天级同步("incremental_sync_daily")
        Option.with_stage("pre_sync"),
        Option.with_timeout(timedelta(milliseconds=1000)),
        Option.with_request_id(str(uuid.uuid1())),
    )
    try:
        done_response = client.done(date_list, topic, *opts)
    except BizException as e:
        print("[done] occur err, msg: %s" % e)
        return
    if not done_response.status.success:
        print("[done] failure")
        return
    print("[done] success")
    return