function.call()。源码提供完整实现和低层接口。
同步调用 Function
function.call(function_id, *args, timeout=...)
function_id 为已保存的 Function ID,*args 按参数顺序传入;示例返回 1.5,前提是已按创建 Function创建示例函数。
timeout 单位为秒。在 Notebook 中控制调用期限;在 Function 内部调用其他函数时,受父调用的剩余期限限制,不能通过增加子调用超时来延长整次执行。
失败时抛出 FunctionInvokeError,常用属性为 code、message、retryable 和 call_id。处理方式见错误码。
Function 描述对象
Function(source_code=None, function_id='', name='', mode='inline')
至少提供源码或 Function ID。该对象用于任务配置,不会在构造时执行或保存函数。
Pipeline 与触发源
Trigger(table, func=None, params=None, operator=None, code=None)
Pipeline(triggers, target_table, depends=None, condition=None)
triggers 至少包含一个触发源;target_table 指定目标表。depends 是计算所需的区块依赖表列表,不自动传入函数。condition 用于普通表的条件写入。
BackfillResult 的常用属性:
大范围回填的批量写入可能异步执行,应另外确认目标表的写任务和共识进度。可直接运行的完整配置见构建 Pipeline。
自定义任务
InputsCallConfig(func=None, callList=None)
func 接受 Function ID、callable 或 Function 对象;callList 是位置参数列表的列表,每个子列表触发一次调用。
[1.5, 2.0]。原始结果顺序不保证对应输入顺序,需要关联时在返回值中携带业务 ID。
TaskBuilder.build(call_config, handler)
返回尚未提交的 Task。task.submit(timeout=None) 提交并等待,返回 TaskResult;timeout 单位为秒。异步 Python 代码可使用 await task.submit_async(timeout=...)。
区块任务输入
triggerSources 的每项使用 table、func、params 和可选 operator。SOURCE_ROW 表示源记录所在的参数位置。
结果处理器
区块处理器的
block 与 block_bundle 对应不同提交形式,不应混用。标准 Pipeline 根据目标表类型选择处理器。
回填辅助接口
bundle_height_range(bundle_id) 返回批次包含的高度范围。backfill_block_bundles() 用于自定义批次回填,配合 BlockBundleCallConfigTemplate 和写入处理器使用。低层配置和测试能力 LocalTestService 见 GitHub。