Resque目前正在向我显示我有一名工作人员在队列中工作。我在队列中间关闭了该工作人员(仅用于测试),工作人员仍在显示正在运行。我已经确认进程ID已被杀死,而bluepill已不再监控它。我无论如何都无法在用户界面中找到它,以确保它正在运行。
更新当前工作人员的状态的最佳方法是什么(我有2个,网络用户界面报告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