【问题标题】:Heroku worker skips Resque's queue configuration?Heroku worker 跳过 Resque 的队列配置?
【发布时间】:2017-01-25 09:13:32
【问题描述】:

在我的 Procfile 中,我定义了一个工人,例如:

signup_worker: env QUEUE=signups bundle exec rake resque:work
login_worker: env QUEUE=logins bundle exec rake resque:work

但在部署我的代码后,我的注册工作者会继续处理注册和登录。

我在这里做错了吗?在 Heroku 上可以做到吗?

【问题讨论】:

    标签: ruby-on-rails heroku resque


    【解决方案1】:

    这里的问题是您试图将环境变量传递给您的工作进程,但是您使用了错误的语法。

    更新您的Procfile 使其如下所示:

    signup_worker: QUEUE=signups bundle exec rake resque:work
    login_worker: QUEUE=logins bundle exec rake resque:work
    

    如果要将环境变量传递给内联进程,则需要以VARIABLE=value <command> 的形式进行。

    我刚才自己在测功机上测试了这个,效果很好!

    【讨论】:

    • 照你说的做了,但仍然如此。我的第一个工人收到第二个消息,反之亦然。
    • 您确定正确解析了环境变量吗?如果您修改您的工作代码并让它输出QUEUE 环境变量,您会看到它确实具有正确的值。如果是这种情况,您的 resque 设置可能存在另一个与环境变量中的错误无关的潜在问题。
    • 非常感谢。除了我的 Procfile 之外,您打开了我对其他问题的想法。我在我的 Rakefile 上有一个 resque:setup,其值如下:QUEUE='*'。
    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    相关资源
    最近更新 更多