如何解决节点 Cron 不在 heroku 服务器上执行
我有一个应用程序后端,在 heroku 服务器上部署了 express 节点。我的后端应用程序使用 node-cron 进行调度。我设置了一个时间表,每早上 7 点用 FCM 发送通知,但是在早上 7 点没有通知进来,我检查了 heroku 服务器上的日志,那里什么也没发生(以前我在应用程序上写了 console.log
)
解决方法
这听起来像是您为 cron 调度程序设置的时区的问题。
尝试转换上午 7 点。到 UTC 时区并再次运行调度程序。
,我假设您使用的是免费版 Heroku。
如果 Heroku 应用程序运行了 30 分钟而没有收到任何流量,它就会进入不活动状态。这样做是为了保留您的免费测功时间。
解决这个问题的一种方法是在 Linux 机器(最好是像 Raspberry Pi 这样的微型计算机,因为它是低功耗的)中创建一个 cronjob,它将在 rands=[[9,1,6,10],[4,7,8,6],[10,2,3,4,5],[1,7],[9,3]]
rands2=[[4,[5,5,3],[2,0],10,0]]
import json
# Store the data
with open('test.json','w+') as fout:
json.dump({'rands':rands,'rands2':rands2},fout)
# Retrieve the data
with open('test.json') as fin:
test = json.load(fin)
rands = test['rands']
rands2 = test['rands2']
运行前几分钟执行一个 GET
请求。这将阻止实例进入睡眠状态。建议为连接测试制作专用端点。
示例:
- 我们首先编辑 crontab。
node-cron
- 假设您想每 06:55 发出一个
crontab -e
请求。
GET
参考文献:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。