1. 概述
1.1 版本
| FineDataLink 版本 | 功能变动 |
|---|---|
| 5.0.10.5 | 新增「调用定时任务」节点,可以在实时任务中调用定时任务 |
1.2 应用场景
用户希望自动监测上游数据,当原始数据或指标数据发生变化时,自动进行预警通知。
希望将 ERP 上的主数据写入 CRM,用于更新 CRM 上的产品信息和库存,时效性要求 5S 以内。
1.3 功能简介
新增「调用定时任务」节点,可以在实时任务中调用定时任务。如下图所示:

2. 操作步骤
2.1 场景模拟
有张记录书本信息的表,用户希望数据发生更新和新增时,调用 API,实时地将数据更新到目标表中。

2.2 准备工作
2.2.1 准备接口
FDL 工程中,使用数据服务功能发布一个 数据接收-通用API接收 接口,调用该接口,可以更新和新增「书本信息」表的数据。

2.2.2 准备定时任务
1)新建一个定时任务,点击「参数列表」,设置参数名和参数值。

| 设置项 | 说明 | ||
|---|---|---|---|
| 参数名 | 自定义即可,但需要与 2.3 节实时任务中设置的参数名一致 | ||
| 参数值 |
|
3)拖入「数据转换」节点,进入「数据转换」节点。拖入「Spark SQL」算子,读取参数值。

点击「数据预览」,效果如下图所示:

3)拖入「JSON解析」算子,解析数据。如下图所示:

4)拖入「JSON生成」算子,构建调用 2.2.1 节 API 接口的参数值。如下图所示:

5)拖入「API输出」算子,调用接口,实现通过接口更新目标表数据的效果。

6)将该任务发布到生产模式下。
2.3 新建实时任务
1)新建一个实时任务,拖入「CDC输入」算子,读取来源表「书本信息_1」数据。如下图所示:

2)拖入「调用定时任务」节点,可看到传递内容处自动生成 JSON 数据,值为:上游所有字段生成的一个 JSON 对象(以一行数据作为样例)。

| 设置项 | 说明 |
|---|---|
| 调用定时任务 | 只能选择有管理权限的且已经发布到生产模式下的定时任务 点击「查看」按钮,可跳转到对应的定时任务编辑页面 |
| 触发条件 | 设置项说明: 满足任一触发条件且上游有数据提交,才会触发定时任务 可设置条件(值需要为正整数,不限制最大值): 1)每XX条数据触发一次:
2)每XX秒触发一次:
触发逻辑:
|
| 参数设置 | 参数名称:
参数值: 默认将上游所有字段,自动构建成一个json对象,上述以一行数据作为样例 值格式: { "before": null, "after": { "id": 1, "name": "Alice", "age": 30 }, "op": "c" } |
3)启动实时任务即可。
2.4 效果查看
1)来源表新增一条数据:

2)可看到触发了实时任务运行:

点击日志中的「查看日志」按钮,可跳转查看定时任务的执行记录。

3)查看目标表数据,可看到目标表被更新。

4)点击「运维中心>定时任务>运行记录」,可查看定时任务的运行记录,触发方式为「实时任务调用」。

