环境特定的 shoryuken 配置
Environment specific shoryuken configuration
我正在使用 运行
的 shoryuken gem
bundle exec shoryuken -R -C config/shoryuken.yml
并且shoryuken.yml是
concurrency: 25
delay: 0
queues:
- [development_high, 30]
- [development_mid, 6]
- [development_low, 2]
这很好用。但是,我想使用环境特定的队列,例如在生产中使用 production_high
。
我确保这些队列存在于
config/initializers/aws.rb
使用
%w(low mid high).each do |q|
sqs.create_queue(queue_name: Rails.env + '_' + q)
end
一种可能的解决方法是使用
concurrency: 25
delay: 0
queues:
- [<%=ENV['RAILS_ENV']%>_high, 30]
- [<%=ENV['RAILS_ENV']%>_mid, 6]
- [<%=ENV['RAILS_ENV']%>_low, 2]
并使用
开始shoryuken
RAILS_ENV=development bundle exec shoryuken -R -C config/shoryuken.yml
我通常在开发中使用特定的配置shoryuken.dev.yml
。
对于开发中的队列,我强烈建议为资源 "arn:aws:sqs:::${aws:username}-*"
创建一个用户(IAM) per developer, with the needed permissions,然后在配置 - [<%= aws_user_name %>_queue_name, 1]
.
如果您使用的是 ActiveJob,请查看 inline
选项。可能是替代方案。
最后但同样重要的是,您还可以在运行时添加队列,检查this。
我正在使用 运行
的 shoryuken gembundle exec shoryuken -R -C config/shoryuken.yml
并且shoryuken.yml是
concurrency: 25
delay: 0
queues:
- [development_high, 30]
- [development_mid, 6]
- [development_low, 2]
这很好用。但是,我想使用环境特定的队列,例如在生产中使用 production_high
。
我确保这些队列存在于
config/initializers/aws.rb
使用
%w(low mid high).each do |q|
sqs.create_queue(queue_name: Rails.env + '_' + q)
end
一种可能的解决方法是使用
concurrency: 25
delay: 0
queues:
- [<%=ENV['RAILS_ENV']%>_high, 30]
- [<%=ENV['RAILS_ENV']%>_mid, 6]
- [<%=ENV['RAILS_ENV']%>_low, 2]
并使用
开始shoryukenRAILS_ENV=development bundle exec shoryuken -R -C config/shoryuken.yml
我通常在开发中使用特定的配置shoryuken.dev.yml
。
对于开发中的队列,我强烈建议为资源 "arn:aws:sqs:::${aws:username}-*"
创建一个用户(IAM) per developer, with the needed permissions,然后在配置 - [<%= aws_user_name %>_queue_name, 1]
.
如果您使用的是 ActiveJob,请查看 inline
选项。可能是替代方案。
最后但同样重要的是,您还可以在运行时添加队列,检查this。