0

我在 Resque 度过了一段艰难的时光,首先,在开发中运行rake resque:work QUEUE='*'队列工作时,它启动良好并开始perform为我的工作人员运行该方法,这很好;问题是工作人员似乎没有运行我的新应用程序代码,比如说我更新了perform该工作人员中的方法,然后Ctrl+c退出该rake resque:work QUEUE='*'进程并再次启动它,而排队处理新工作不会导致使用新的更新代码运行的工作人员。

所以主要我的问题是,我如何安全地终止resque:work任务并使用新的应用程序代码重新启动我的工作人员?

4

1 回答 1

4

Resque 工作人员会响应几个不同的信号:

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

如果你想优雅地关闭一个 Resque worker,使用 QUIT。

kill -s QUIT reqsue.pid

如果你想用 capitrano 设置 resque 重启,使用这个 gits

于 2011-07-18T05:26:19.777 回答