5

我在 Heroku 上的应用程序中添加Resque-Scheduler

所以...我需要一个单独的、独特的工人作为调度员,许多人在做这些工作。

这就是我的做法:
我有一个独特的 Heroku 应用程序,它什么都不做,只有 1 个 resque-scheduler 工作人员,24/7 全天候运行,将Resque任务添加到“远程”应用程序的 Redis DB 中。

(我将jobs:work任务映射到resque:schedulerresque:work

这是在 Heroku 平台上做的最好方法吗?还是我做错了?

谢谢 !

编辑:在 Heroku 上进行调度的最小应用程序:http: //github.com/clmntlxndr/heroku-scheduler

更新:使用 Heroku 和 Procfiles 上的新 CEDAR 堆栈,可以为每个工作人员启动不同的任务。

web:        bundle exec rails server -p $PORT
scheduler:  bundle exec rake resque:scheduler
worker:     bundle exec rake jobs:work

http://devcenter.heroku.com/articles/procfile

4

1 回答 1

3

我想我第一次看错了你的问题。我错过了调度程序需要单独的 rake 任务的部分。

是的,我认为唯一的方法是拥有两个单独的 heroku 应用程序,因为 heroku 工作人员只会运行rake jobs:work,并且大概您只能将其映射到一个 resque rake 任务。

你可以试试这个:

desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => ["resque:work", "resque:scheduler"]

但我对 Heroku 如何监控工作进程和东西是否能正常工作表示真诚的怀疑。另外,仔细检查那里的 rake 语法;这只是记忆中的。我知道可以指定多个依赖项。

于 2010-10-02T01:09:00.497 回答