我遇到了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上运行此服务器。 我猜这个问题可能与我缺乏内存有关。 任何人都可以建议我如何解决这个问题吗?
提前谢谢!
答案 0 :(得分:1)
是的,你需要更多内存。尝试使用-c 5
来缩小Sidekiq的内存使用量。