通过XXL-JOB调度Dify工作流
本文将介绍通过任务调度XXL-JOB调度Dify工作流的功能优势,并提供具体的接入步骤。
背景信息
Dify工作流具有广泛的业务应用场景,需要用到定时调度,例如:
风险监控:每分钟扫描风险数据,通过大模型分析潜在风险事件,并及时发出报警。
数据分析:每日拉取金融数据,通过大模型进行数据分析,为投资者提供决策建议。
内容生成:每天自动总结工作内容,生成日报。
Dify原生不支持定时调度功能,可以使用任务调度XXL-JOB作为工作流的调度和状态监控。
核心功能
通过XXL-JOB调度Dify工作流,有以下核心功能和优势:
Dify任务:支持调度自建的公网Dify工作流,以及阿里云自建的内网Dify工作流。
灵活的定时配置:支持
cron
、api
、fixed_rate
、fixed_delay
、one_time
时间类型,自定义时区和日历。企业级报警监控。
灵活的报警策略:任务级别失败报警、超时报警、成功通知。以及实例和应用级别的阈值报警。
多渠道消息通知:短信、电话、Webhook、邮件。
企业级可观测。
调度大盘:可以查看实例和应用级别调度情况,包括调度、成功、失败曲线。
执行历史:记录Dify工作流每次执行的历史记录,包括状态、基本信息、输入输出、耗时、Tokens消耗等。
调度事件:记录Dify工作流每次调度的事件,包括工作流相关事件、节点相关事件。
节点追踪:记录Dify工作流一次执行,所有节点的执行情况,支持循环、迭代、条件分支的下钻。
前提条件
已部署Dify服务。具体操作,请参见部署ACK-Dify服务。
已创建XXL-JOB实例(要求引擎版本大于2.2.0),已创建XXL-JOB应用。
接入步骤
1. (可选)Dify服务配置内网API服务器域名
登录容器服务管理控制台。
在左侧导航栏的集群列表中,单击集群名称进入已部署Dify服务集群。
选择左侧导航栏的
,单击创建。服务类型选择负载均衡(LoadBalancer),访问方式选择私网访问。参考以下示例服务关联填入
component
组件选择proxy
,填入其他配置项后,单击确定。创建完成后,将生成内网API服务器的地址。
2. 创建Dify工作流任务
登录Dify控制台,单击右上角的工作室,选择从应用模板创建,创建一个工作流。
登录MSE XXL-JOB控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择
。单击进入目标实例,在左侧导航栏的任务管理,单击创建任务。任务类型选择Dify工作流。更多创建任务信息,请参见任务管理。
Endpoint:Dify工作流的API服务器,登录Dify控制台,在访问 API页面右上角可获取API 服务器。如果使用阿里云自建Dify服务,推荐参考步骤一,将域名更改为内网地址。
API KEY:Dify工作流的API 密钥,不同的工作流有不同的密钥。单击访问 API页面右上角API密钥获取。
输入:工作流的输入,对应
Body
中inputs
的值,格式为JSON。inpus
值示例如下:{"input_text": "what is your name"}
3. 测试验证
单击已创建任务操作列下的运行一次,手动测试。
单击目标任务
下的调度记录,查看任务执行记录。单击执行任务操作列的详情,即可查看Dify工作流的基本信息、输入输出和节点追踪。
基本信息。
输入输出。
追踪,如果是迭代器、循环分支,支持节点下钻。
通过OpenAPI操作
MSE XXL-JOB控制台的所有接口均提供OpenAPI。如果您希望通过API动态创建任务、运行工作流,监听状态以及获取执行结果,请参考以下步骤:
创建任务:CreateJob - 创建任务。
运行任务:OperateExecuteJob - 运行一次任务。
在请求时,
InstanceParameters
参数可用于填充新的输入,以替换XXL-JOB控制台任务管理中的输入。执行成功后返回
JobExecutionId
(任务执行ID)。
根据
JobExecutionId
(任务执行ID)查询状态和结果:GetJobExecution - 获取任务执行的详细信息。Result
返回执行的结果。返回参数
Status=4
,表示请求执行成功。