【发布时间】:2017-12-19 09:00:44
【问题描述】:
我最近不得不优先考虑我的 Sidekiq 队列(在我只使用 default 队列之前)。
所以我写了一些应该在不同队列上执行的作业。
我的sidekiq.yml:
:queues:
- slack_notifier
- invoicing
- default
deploy.rb (capistrano):
# ...
set :sidekiq_config, "#{current_path}/config/sidekiq.yml"
# probably below line does same thing as above one
set :sidekiq_options_per_process, ['--queue slack_notifier --queue invoicing --queue default']
# ...
我可以在部署时看到它正在被使用:
01:32 sidekiq:start
01 $HOME/.rbenv/bin/rbenv exec bundle exec sidekiq --index 0 --pidfile /home/ubuntu/cap/shared/tmp/pids/sidekiq.pid --environment production --logfile /home/ubuntu/cap/shared/log/sidekiq.log --config /home/ubuntu/cap/current/config/sidekiq.yml --queue slack_notifier --queue invoicing --queue default --daemon
Sidekiq 正在运行:
ps aux | grep '[s]idekiq'
#=> ubuntu 716 16.4 2.1 668604 176860 ? Sl 07:31 14:18 sidekiq 4.2.6 cap [1 of 1 busy]
现在,当我开始工作时,它们似乎在某个时候停止了。
不确定我能否更好地描述这个问题。当我清除两个优先级队列(slack_notifier 和 invoicing)时,默认值似乎仍然没有处理作业。
【问题讨论】:
-
是的,反对票就是我来这里的目的。
-
我不确定为什么这个问题被否决了;为了熵恒定而投票赞成。
-
看来你有很多工作/长期工作和并发 = 1 的 Sidekiq。您可以尝试检查 rails 控制台和github.com/mperham/sidekiq/wiki/API 的情况
-
您是否尝试过三种不同的sidekiq runner,每个队列一个,如described here?
-
这不是 capistrano 的职责:部署一次,启动 3 次。只需为它们创建三个
upstart/systemctl配置。
标签: ruby-on-rails ruby capistrano sidekiq jobs