一般Rails app的定时任务是把ActiveJob 包成一个rake task并通过crontab执行。这种架构的适合用在分钟等级以上的定时任务。
但是Heroku并没有提供crontab指令,在Heroku上运行定时任务必须用到一个插件:Heroku Scheduler
Heroku Scheduler
- 到Heroku App仪表板
- Resouces 页签
- 新增一个Heroku Scheduler 的 addon
- Add new job
- 输入sh,并设定执行频率。这边以每月25号寄送生日通知信为例(
rails mail:birth_notification),我设定频率为每天,它每天都会检查今天不是25日,是则执行后面的指令
# every months 25th do this rake task if [ "$(date +%d)" = 25 ]; then rails mail:birth_notification; fi

Heroku Scheduler最小只提供间距为10分钟等级的定时任务,若要更精细,只能使用应用层级的定时排程了。
转载需保留链接来源:软件玩家 » Rails应用程序在Heroku执行定时任务(计划任务)
heroku-cli笔记
给Heroku上的网站加上SSL保护
部署你的Rails App到Heroku
什么是SVG图标?在网页中如何使用SVG图标?
Azure SignalR和Azure Functions实现无服务器架构
DBeaver – 媲美Navicat的数据库管理软件
eDEX-UI – PowerShell程序员必备的全屏终端
Sublime Text – 程序员之必备代码编辑器