定时任务
(一)Scheduler插件
大部分web应用要求在后台运行定时任务。heroku有个 scheduler 插件来支持定时任务。
安装scheduler插件很简单,执行如下命令:
$ heroku addons:add scheduler:standard
下一步是运行heroku addons:open scheduler命令,它打开web浏览器并导航到scheduler面板,在这里你可以增加新的任务,指定任务的运行时间间歇,甚至手工强制执行任务。当前的scheduler面板看起来如下:
假设你有个程序名为generate_reports.py,放在项目的主目录下,那么可以简单的创建一个任务,将generate_reports.py放在动作栏里。
(二)Debug任务
为了确认任务工作正常,可以先手工运行它试试。例如,generate_reports.py配置为每小时执行一次,在此之前,你可以先手工测试运行它:
$ heroku run generate_reports.py
这条命令也是scheduler插件的工作方式,它到点后会执行这个命令。
如果定时任务执行遇到问题,不妨检查如下方面:
- 脚本可执行吗?(chmod +x)
- 能否通过heroku run运行脚本?
- 配置信息是否正确完整?
(三)成本
尽管scheduler插件免费,但任务的执行时间要付费。比如你有个任务,每小时运行一次,每次执行时间一分钟,这样你每天就要支付24分钟的dyno使用时间。因此,你需要优化任务,减少执行时间,从而节省成本。