sidekiq甚至从应用程序中删除时运行

时间:2014-02-12 10:37:15

标签: ruby-on-rails sidekiq

我有一个问题,即sidekiq进程几乎使用我的所有服务器CPU。 今天我从应用程序中删除了sidekiq,但是当我运行htop时,它显示usr/local/bin/bundle exec sidekiq的CPU使用率很高。

最奇怪的是,sidekiq大约在5个月前实施,但问题最近才开始发生(大约两周前)。

我只将sidekiq用于一个后台工作。

我试图在服务器上运行killall sidekiq来杀死所有sidekiq进程,但没有任何反应。

这是我非常简单的sidekiq工作人员:

class UserWorker
  include Sidekiq::Worker

  def perform(user_id)
    user = User.find(user_id)

    url = "http://url_to_external_api"

    uri = URI.parse(url)
    request = Net::HTTP::Get.new(uri.request_uri)

    response = Net::HTTP.start(uri.host, uri.port) do |http|
        http.request(request)
    end

    age = JSON.parse(response.body)['user']['age']

    user.age = age
    user.save!

rescue ActiveRecord::RecordNotFound
    # nothing to do here
end
end

此时我非常绝望,因为这个sidekiq进程每隔一天就会杀死我的服务器,我甚至无法完全删除它。

修改 当我运行kill -9 PID来杀死进程时,它会被杀死,但在此之后它会再次启动另一个PID。

问题

我只是在Amazon Ec2实例上手动运行命令/usr/bin/ruby1.9.1 /usr/local/bin/bundle exec sidekiq -r /var/www/path to my application,我收到错误:Error fetching message: Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED) 那么我是否需要在服务器上安装redis才能运行sidekiq?

0 个答案:

没有答案