【问题标题】:Resque Optimisation on HerokuHeroku 上的 Resque 优化
【发布时间】:2013-06-05 08:30:35
【问题描述】:

我正在使用 Resque 在 Heroku 上进行大量数据处理。

使用 NewRelic,我发现我的任务使用了 15% 的 CPU 份额和每个实例 50mo RAM。

我只用一个测功机就可以处理 5 个工作。

但我不知道该怎么做。

我尝试在 procfile 中使用 COUNT=5,但它似乎不起作用。此外,ResqueRetry 不会以这种方式看到失败的作业......

有人知道怎么做吗?

【问题讨论】:

    标签: heroku sinatra resque


    【解决方案1】:

    你需要对你的 Procfile 做几件事

    首先添加 COUNT 环境变量,然后将命令从 resque:work 更改为 resque:workers

    这是一个例子

    resque: env TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10 COUNT=2 QUEUE=* bundle exec rake resque:workers
    

    我在 Heroku 上仅使用 1 个 resque dyno 测试了此解决方案,并看到我发送的 2 个作业一次得到处理。

    【讨论】:

    • 此解决方案的问题是,如果其中一个作业失败,则不会通过 Resque Retry 将其发送到 Retry 队列。此外,其中一个过程可能会在您不注意的情况下死亡。这显然是一种不好的做法:/
    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 2012-06-13
    相关资源
    最近更新 更多