【发布时间】:2014-12-03 11:23:50
【问题描述】:
我有一个 Sidekiq 工作人员在本地运行良好,但是当部署到 Heroku 时,作业卡在队列中。我正在使用 Redis-to-go nano 并启动并运行它,并且我已将 Heroku 上的 worker 缩放到 1 并且可以看到它已启动。我只是使用默认队列——没有自定义或花哨的。这是我的代码:
config/unicorn.rb:
Sidekiq.configure_client do |config|
config.redis = { size: 1, namespace: 'sidekiq' }
end
config/initializers/redis.rb
uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])
过程文件
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq -c 5 -v -q default
我可以看到队列中的作业,但它不像本地那样处理。非常感谢任何建议 - 谢谢!
【问题讨论】:
-
尝试运行
heroku run console并同步运行您的作业SomeWorker.new.perform(some_arg),它可能会引发错误并重新安排。 -
您好,感谢您的快速回复。在 heroku 控制台中运行执行了我预期的操作(即它生成了一个具有正确参数的新用户);但是,我看不到任何证据表明它在 Sidekiq Web UI 中有效——也就是说,它既没有被排队也没有被处理。有什么想法吗?
-
一旦我从 heroku 控制台开始工作,出于好奇,我尝试在我的应用程序中同步运行该作业.... '传递完全相同的参数。
标签: ruby ruby-on-rails-4 heroku redis sidekiq