dify定时任务解决方案

        dify的定时任务目前我看到的有两种解决方案,一种是使用dify-schedule的github actions来实现,一种是通过青龙来本地化实现,还有一种是通过网络钩子的扩展来实现,我尝试使用github actions来实现,结果发现总是有一些不知名的错误;而网络钩子的方式又无法连接我写好的应用,因为应用使用的是测试应用,所以应该是网络钩子有关,又或者是我使用的不对,索性另辟蹊径,采用了另外一种的方式。

        在dify中是可以通过api进行调用的,因此我可以通过curl发送请求来使dify的工作流执行起来,然后通过定时任务来定时调用api进行发送,这样就可以实现dify工作流的定时任务,实现原理感觉和其他的方式的原理是差不多的,而且实现起来更加简单且不需要开源项目等等。

        好了,原理说明完毕,直接上流程:

        关于如何实现dify发送email的方式,我会在下一篇文章中写明如何操作的         

        第一次的时候需要创建一个密钥

        然后复制好自己密钥,然后修改刚才的curl的内容,例如:

curl -X POST 'http://localhost/v1/chat-messages' \
--header 'Authorization: Bearer app-xxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {"emails":"wang.pengfei@fusionx.net,wu.yujia@fusionx.net"},
    "query": "every day send message of test",
    "response_mode": "streaming",
    "conversation_id": "",
    "user": "root"
}'

        

        分别修改自己的ip和密钥,然后放到本地的命令行中运行,看是否能够运行成功,若运行成功可以在自己的邮箱中接收到信息,接下来就可以开始定时任务咯。

        我是在linux上实现的,写了一个shell脚本:

#!/bin/bash

curl -X POST 'http://xxxxxxxxx/v1/chat-messages' \
--header 'Authorization: Bearer app-xxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
    "inputs": {"emails":"xxxxxx@fusionx.net,xxxxxxxx@fusionx.net"},
    "query": "every day send message of test",
    "response_mode": "streaming",
    "conversation_id": "",
    "user": "root"
}'

# 记录执行日志(可选,方便排查问题)
echo "脚本执行时间:$(date)" >> /root/my-app/chat_send_logs.txt

        然后运行

crontab -e

        添加一行数据

0 8 * * * /root/my-app/every_week_send.sh

        这是一个定时任务,规定每天8点运行一次every_week_send.sh脚本,这样就可以非常完美的实现dify的定时任务的功能,是不是更简单一点儿,仅需要一个shell脚本和定时任务即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值