Sidekiq无缘无故被杀

时间:2014-05-22 08:12:26

标签: ruby-on-rails centos sidekiq digital-ocean

我遇到了Sidekiq的问题,当工人开始时,这个过程就会被杀死。

[deploy@server svr]$ bundle exec sidekiq -e production
2014-05-22T07:49:33Z 4043 TID-18mgoy INFO: Running in ruby 2.1.1p76 (2014-02-24 revision 45161) [i686-linux]
2014-05-22T07:49:33Z 4043 TID-18mgoy INFO: See LICENSE and the LGPL-3.0 for licensing details.
2014-05-22T07:49:33Z 4043 TID-18mgoy INFO: Starting processing, hit Ctrl-C to stop
2014-05-22T07:49:33Z 4043 TID-1sux8k INFO: Booting Sidekiq 3.0.0 with redis options {}

然后我将运行一个从我的Rails应用程序中触发工作程序的进程

2014-05-22T07:49:59Z 4043 TID-1e780u S3Worker JID-8c862be58af968fa8b84aedf INFO: start
2014-05-22T07:49:59Z 4043 TID-1e3ye4 S3Worker JID-79c585fbd3c7000a5a6fbf95 INFO: start
2014-05-22T07:49:59Z 4043 TID-1e1i6k S3Worker JID-d62d41b13f2dd4849d4cc887 INFO: start
Killed
[deploy@server svr]$

这是我的工作人员代码,工作人员的目的是从远程位置将图像上传到S3。

class S3Worker
   include Sidekiq::Worker

   def perform(id, url)
      @image = Image.new(post_id: id)
      @image.remote_image_url = url

      if @image.save
         logger.info "Image Uploaded to S3"
      end
   end
end

我在Centos 6.5上使用512MB RAM,Rails4应用程序在Digital Ocean上运行此服务器。 我猜这个问题可能与我缺乏内存有关。 任何人都可以建议我如何解决这个问题吗?

  • 另外请注意,如果我访问Sidekiq仪表板,工作人员甚至不会进入“忙碌”,它将会消失,而不是“失败”或“已处理”

提前谢谢!

1 个答案:

答案 0 :(得分:1)

是的,你需要更多内存。尝试使用-c 5来缩小Sidekiq的内存使用量。