Resque:工人身份不对

时间:2012-04-06 04:03:35

标签: ruby-on-rails ruby redis resque

Resque目前正在向我显示我有一名工作人员在队列中工作。我在队列中间关闭了该工作人员(仅用于测试),工作人员仍在显示正在运行。我已经确认进程ID已被杀死,而bluepill已不再监控它。我无论如何都无法在用户界面中找到它,以确保它正在运行。

更新当前工作人员的状态的最佳方法是什么(我有2个,网络用户界面报告3)。

3 个答案:

答案 0 :(得分:2)

您可能有一个挥之不去的pid文件。此文件独立于正在运行的进程;换句话说,当你杀死进程时,它没有删除pid文件。

如果您使用典型的Rails和Resque设置,Resque会将pid存储在Rails ./tmp目录中。

一些Resque启动脚本在不同的位置指定pid文件,如下所示:

PIDFILE=foo/bar/resque/pid bundle exec rake resque:work 

无论脚本放置pid文件,请查看,然后将其删除,然后重新启动。

同样在命令行上,您可以向redis询问正在运行的工作人员:

redis-cli keys *worker:*

如果有您不期望的工人,可以使用以下方法删除它们:

redis-cli del <keyname>

答案 1 :(得分:0)

尝试重新启动应用程序。

答案 2 :(得分:0)

对于将来的参考:还可以查看https://github.com/resque/resque/issues/299