Ruby on rails 如何暂停Heroku上的重新创建处理?

Ruby on rails 如何暂停Heroku上的重新创建处理?,ruby-on-rails,heroku,ruby-on-rails-3.2,resque,resque-scheduler,Ruby On Rails,Heroku,Ruby On Rails 3.2,Resque,Resque Scheduler,我正在从延迟的工作迁移到Resque,考虑到我将有很多工作一直在排队(将来会有一些),我不可能知道什么时候我可以将工作人员的规模缩小到0来进行安全的新发布 有没有办法安全地告诉Heroku上的工人完成当前的工作,但不接受任何新的工作 这样,当作业不处理任何内容时,我可以将工作人员的规模缩小到零,以便在Heroku上安全发布新版本 然后我可以缩小工作人员的数量并恢复处理。重新确定工作人员对几个不同信号的响应: QUIT - Wait for child to finish processing t

我正在从延迟的工作迁移到Resque,考虑到我将有很多工作一直在排队(将来会有一些),我不可能知道什么时候我可以将工作人员的规模缩小到0来进行安全的新发布

有没有办法安全地告诉Heroku上的工人完成当前的工作,但不接受任何新的工作

这样,当作业不处理任何内容时,我可以将工作人员的规模缩小到零,以便在Heroku上安全发布新版本


然后我可以缩小工作人员的数量并恢复处理。

重新确定工作人员对几个不同信号的响应:

QUIT - Wait for child to finish processing then exit
TERM / INT - Immediately kill child then exit
USR1 - Immediately kill child but don't exit
**USR2 - Don't start to process any new jobs**
CONT - Start to process new jobs again after a USR2 
在您的情况下,您不希望处理新作业,因此可以使用
USR2

更多阅读heroku中的信号

您需要知道进程id并发送信号

USR2 rscue.pid

你可以对作业进行优先级排序
QUEUES=critical,queed,new\u job rake resque:work
而不是stop newSounds好,你如何向Heroku上的所有工作人员发送USR2信号?除非我遗漏了什么,否则这并不能解释如何向所有Heroku工作人员发送信号。我需要在Heroku上运行这个,而不是在本地运行