Heroku黑客指南(十一)

定时任务

(一)Scheduler插件

大部分web应用要求在后台运行定时任务。heroku有个 scheduler 插件来支持定时任务。

安装scheduler插件很简单,执行如下命令:

$ heroku addons:add scheduler:standard

下一步是运行heroku addons:open scheduler命令,它打开web浏览器并导航到scheduler面板,在这里你可以增加新的任务,指定任务的运行时间间歇,甚至手工强制执行任务。当前的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使用时间。因此,你需要优化任务,减少执行时间,从而节省成本。

此条目发表在Common分类目录,贴了, 标签。将固定链接加入收藏夹。