Sidekiq工人关机

时间:2016-07-15 14:39:30

标签: ruby-on-rails 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!

可能导致什么?

本地所有工作都很棒,但在生产服务器上部署后出现了这个错误。

任何建议。

1 个答案:

答案 0 :(得分: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