【问题标题】:heroku workers and delayed job gemheroku 工人和延迟工作宝石
【发布时间】:2014-04-03 16:44:18
【问题描述】:

我知道有一些关于 Heroku 和 delay_job 的帖子,但我仍然对 Heroku 的工作人员和后台作业之间的交互感到困惑。

所以我正在启动我的网站的新版本,并添加了delayed_job 来处理电子邮件。它说我只需将worker: bundle exec rake jobs:work 添加到我的Procfile 即可。但这是否意味着我支付的唯一工人正在用于后台工作?那我需要再买一个吗?

有些人还提到了诸如hirefire之类的东西,它可以自动打开和关闭你的工人,但这对我来说并不完全合理。那个工作人员不应该一直在为您的网站做事吗,所以如果它曾经与 delay_job 一起使用,那么它就不会运行我的网站。我对这一切如何运作知之甚少,希望得到解释。

【问题讨论】:

    标签: ruby-on-rails heroku queue backgroundworker delayed-job


    【解决方案1】:

    是的,要使用delayed_job,您需要为一个工作进程付费。工作进程只会处理队列中的delayed_jobs,然后您的正常Web 进程(他们免费为您提供一个)将处理您的所有Web 请求。您可以分别扩展 Web 和工作进程。

    heroku ps 将向您显示您正在运行哪些进程,并且您应该至少有 1 个 Web 和至少 1 个工作人员,以便处理 Web 请求和延迟的作业进程。

    您可以使用命令行或网络界面添加进程,添加您的工作人员的命令行是:

    heroku ps:scale worker=1

    【讨论】:

    • 好的,所以我买了一名工人并拥有一台测功机。当我购买了制作它的工人时,我的网站不会延迟人们访问我的网站。如果我指定该工作人员处理延迟作业任务,我的站点是否会回到延迟状态?基本上会对我网站的整体体验产生影响吗?
    • 如果你将你的两个工人中的一个指定给delayed_job,那么你将回到你以前的位置。请参阅this answer 了解 Dynos 之间的区别。
    猜你喜欢
    • 2012-04-10
    • 2011-11-14
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 2011-08-05
    • 2015-02-08
    相关资源
    最近更新 更多