Skip to main content
BlockX 将计算函数与触发、输入和结果写入组合起来。以下驱动接口默认在 Notebook 中使用;函数内复用逻辑可使用 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。