数据流的启动目前支持两种触发方式:
启动api:通过调用 API 触发,此方式默认强制启用。在编辑态点击【手动执行】,或其他组件调用都为此种触发方式。
定时:通过 cron 表达式来定义定时计划,以固定时间间隔触发数据流,此方式为可选,启用之后需配置 cron 表达式。
数据流元素保存之后,自动生成本数据流的端点地址。
可快速复制同步或异步调用的 curl,会带上当前用户的cookie和token信息,在集成开发时,请先用登录接口获取token后进行替换。

复制的同步cURL对应run-sync接口,参数InProcess=True(串行),可自行修改参数
复制的异步cURL对应run接口,参数InProcess=False(并行),可自行修改参数
这两个底层接口和InProcess参数的说明,详见【启动接口说明】章节(仅供内部成员查看)。
定时调用对应的底层启动接口是run接口+InProcess参数 = False(并行),等同于API(异步)效果,启停耗时会比较长,但各节点有并行效果。
点击默认名称右侧的编辑icon,可以修改定时名称,名称会实时回显至定时配置项

可以指定最新版本的发布人,或具体用户(但元素迁移后可能因为空间不同导致用户不存在)。
也可以指定用户并留空,但不建议。
数据流若有调用其他服务的节点(例如财务模型、维度等),这些服务通常需要鉴权,若数据流是定时调用,那么cookie或token一定会超时,此时有些服务会用流程发起人的权限来进行校验(Header中的user),为避免调用这些节点时出现鉴权不通过导致的错误,请您务必配置一名有管理员权限的用户!

启用后必须配置 cron 表达式,cron 表达式支持 5 位,可以参考在线网站帮助生成:https://crontab.guru/。
数据流也提供了插入工具,以帮助您生成 cron 表达式:

输入表达式后,会实时解析该规则的描述,展示在表达式下方,并且提供预览最近 10 次执行时间的功能,用以辅助您检查表达式是否正确。

若数据流的已发布版本中,存在启用的定时计划,则会在到时后自动触发数据流,如需管理这些启用中的定时计划,可至数据流监控中进行管理。
若您在数据流中编排了【PY脚本】节点,且在PY脚本内又调用了先胜云其他组件的服务,一些服务是需要鉴权的,在定时调用时,很可能因为cookie/token失效而导致鉴权失败、执行失败。
您需要在
被调用的PY脚本中添加以下绕过鉴权的代码(以deepfos sdk 版本 < 1.1.7为例),PY脚本被工作流组件等其他组件定时调用也是同理。from deepfos.options import OPTION
from deepfos.lib.eureka import Eureka
OPTION.server.app = Eureka.sync_get_url('APP-SERVER')
OPTION.server.space = Eureka.sync_get_url('SPACE-SERVER')
OPTION.server.system = Eureka.sync_get_url('SYSTEM-SERVER')
OPTION.general.use_eureka = True
其他deepfos sdk 版本,详见deepfos文档:异常排查 — DeepFOS
若是数据流或工作流调用【子数据流】,【子数据流】并不是定时启动的,但由于【父流程】定时或工作流中有人工任务等情况,也导致cookie/token失效,您可以尝试在【子数据流】的公共脚本中添加以下代码:
from deepfos.options import OPTION
from deepfos.lib.discovery import ServiceDiscovery
srv = ServiceDiscovery.instantiate()
OPTION.server.app = srv.sync_get_url('APP-SERVER')
OPTION.server.space = srv.sync_get_url('SPACE-SERVER')
OPTION.server.system = srv.sync_get_url('SYSTEM-SERVER')
OPTION.discovery.enabled = True
在数据流编辑界面运行,可选的两种启动模式,即对应了InProcess参数的两个值。

对InProcess参数的说明,详见【启动接口说明】章节(仅供内部成员查看),此处提供部分截图说明:

数据流提供了同步和异步启动的Python SDK,可查看对应文档:https://py.deepfos.com/deepfos/generated/deepfos.element.deep_pipeline.DeepPipeline.html#

数据流中可通过【子数据流】节点调用其他数据流,支持以下四种调用方式:
同步:调用方会主动轮询同步等待结果,来实现用户常规认知的同步效果
异步:调用后不等结果,直接返回 run_id
批量同步(V3.0.0.4.0_3.7.13 版本新增):按启动参数的 list 逐个提交,需等待所有子流程全部完成
批量异步:一并提交所有子流程,不等待结果
底层接口及 InProcess 参数配置如下:
|
调用方式 |
接口 |
InProcess 参数 |
说明 |
|---|---|---|---|
|
同步 |
|
|
异步接口调用,但调用方主动轮询等待结果 |
|
异步 |
|
|
异步调用,不等待结果 |
|
批量同步 |
|
|
顺序执行,等待所有子流程完成 |
|
批量异步 |
|
|
一并提交,不等待结果 |
注意:V3.0.0.4.0_3.7.13 版本前,批量异步的 InProcess 参数为 false,新版本统一为 true。
批量同步和批量异步时,启动参数的输入框会根据内容自适应高度,初始默认高度为完全展示 placeholder 的高度。

先胜云平台其他组件也支持启动数据流,例如工作流、UX,详见:关联组件 — 数据流3.0 | DeepFOS Docs
回到顶部
咨询热线
