【问题标题】:Resque Scheduler on Heroku... Do it remotely?Heroku 上的 Resque 调度程序...远程执行?
【发布时间】:2011-04-19 21:34:37
【问题描述】:

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

所以...我需要一个单独的、不同的工作人员作为调度程序和 许多人在做这项工作。

这就是我的做法:
我有一个独特的 Heroku 应用程序,它只有 1 个 resque-scheduler 工作人员,24/7 全天候运行,将 Resque 任务添加到“远程”ma​​in 的 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

【问题讨论】:

    标签: ruby heroku scheduled-tasks redis resque


    【解决方案1】:

    我想我第一次看错了你的问题。我错过了调度程序需要单独的 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 语法;这只是记忆中的。我知道可以指定多个依赖项。

    【讨论】:

    • 是的!我在我的问题中描述的方式已经几乎可以正常工作了(我很快就会把它放在 Github 上)。我只是想知道它在原则上是否很好,并等待有人说我“停止!你可以分配一个不同的工人来完成一项不同的任务:......”:)
    • 是的,很确定没有办法做到这一点。
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2012-11-13
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2011-07-23
    相关资源
    最近更新 更多