2017-02-08 2 views
0

J'utilise le shoryuken gem en exécutantEnvironnement configuration spécifique shoryuken

bundle exec shoryuken -R -C config/shoryuken.yml 

et shoryuken.yml est

concurrency: 25 
delay: 0 
queues: 
- [development_high, 30] 
- [development_mid, 6] 
- [development_low, 2] 

Cela fonctionne très bien. Cependant, j'aimerais utiliser les files d'attente spécifiques à l'environnement, par ex. utiliser production_high dans la production. Je fais en sorte que ces files d'attente existent dans

config/initializers/aws.rb utilisant

%w(low mid high).each do |q| 
    sqs.create_queue(queue_name: Rails.env + '_' + q) 
end 

Répondre

1

J'utilise généralement une configuration spécifique shoryuken.dev.yml en développement .

Pour les files d'attente dans le développement, je vous recommande fortement de créer un utilisateur (IAM) par développeur, avec the needed permissions pour la ressource "arn:aws:sqs:::${aws:username}-*", puis dans la configuration - [<%= aws_user_name %>_queue_name, 1]. Si vous utilisez ActiveJob, consultez l'option inline. Peut-être une alternative.

Enfin et surtout, vous pouvez également ajouter des files d'attente lors de l'exécution, vérifiez this.

0

Une solution possible est d'utiliser

concurrency: 25 
delay: 0 
queues: 
- [<%=ENV['RAILS_ENV']%>_high, 30] 
- [<%=ENV['RAILS_ENV']%>_mid,  6] 
- [<%=ENV['RAILS_ENV']%>_low,  2] 

et commencer à shoryuken avec

RAILS_ENV=development bundle exec shoryuken -R -C config/shoryuken.yml