[英]Resque: worker status is not right
Resque 目前正在向我展示我有一個工人在處理隊列。 該工作人員在隊列中間被我關閉(僅用於測試)並且工作人員仍顯示為正在運行。 我已經確認進程 ID 已被殺死並且 bluepill 不再監視它。 我無法在 UI 中找到任何方式來強制清除它正在工作。
更新當前工作的工作人員數量的最佳方式是什么(我有 2 個,Web UI 報告 3 個)。
您可能有一個揮之不去的 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>
嘗試重新啟動應用程序。
供將來參考:也可以查看https://github.com/resque/resque/issues/299
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.