2016-07-15 50 views
1

我有奇怪的錯誤Sidekiq工人關機

2016-07-15T14:34:09.334Z 16484 TID-33ld0 WARN: Terminating 1 busy worker threads 
2016-07-15T14:34:09.334Z 16484 TID-33ld0 WARN: Work still in progress [#<struct Sidekiq::BasicFetch::UnitOfWork queue="queue:load_xml", job="{\"class\":\"GuitarmaniaWorker\",\"args\":[],\"retry\":false,\"queue\":\"load_xml\",\"jid\":\"56c01b371c3ee077c2ccf440\",\"created_at\":1468590072.35382,\"enqueued_at\":1468590072.3539252}">] 
2016-07-15T14:34:09.334Z 16484 TID-33ld0 DEBUG: Re-queueing terminated jobs 
2016-07-15T14:34:09.335Z 16484 TID-33ld0 INFO: Pushed 1 jobs back to Redis 
2016-07-15T14:34:09.336Z 16484 TID-33ld0 INFO: Bye! 

什麼原因呢?

本地所有工作都很好,但在生產服務器上部署後出現此錯誤。

有任何建議。

回答

0

這意味着Sidekiq正在關閉。如果正常的「殺死」操作(TERM信號),Sidekiq服務器will attempt to shutdown gracefully by waiting 8 seconds for jobs to be complete。然後它會停止執行作業,並在下次啓動服務器時重新排隊。

這引發了一個問題,爲什麼你的Sidekiq關機。可能的原因是:你在命令行或腳本中殺死了進程;你或你的數據主機關閉了機器;你的操作系統內存不足。如果你不確定原因,最可能的原因是最有可能的。

如果在啓動後不久發生內存泄漏,您可能運行了太多的Sidekiq進程和/或您的計算機可能沒有足夠的內存來加載應用程序。如果消息發生一段時間後,可能會出現內存泄漏 - 在啓動Sidekiq後定期運行free,以查看內存使用量是否增加,這表示泄漏。有時候內存泄漏是由於一個庫,有時它是你自己的應用程序。 More about tracking down leaks in Ruby here

相關問題