Почему Sidekiq работает в среде разработки на сервере? - PullRequest
0 голосов
/ 30 августа 2018

в моем файле конфигурации сайта nginx (/etc/nginx/sites-available/my_website Я установил:

passenger_env_var RAILS_ENV staging;

Я использую Sidekiq для отправки электронных писем, начиная это так:

bundle exec sidekiq -q mailers -d -L log/sidekiq.log

но мой Sidekiq имеет окружение, установленное на development. Почему?

Должен ли я задавать среду явно при запуске sidekiq? Я думал, что это установлено в конфиге nginx.

Спасибо

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Это можно настроить, создав файл в initializers/sidekiq.rb

If Rails.env.development?
  Sidekiq.configure_server do |config|
    config.redis = { url: 'redis://localhost:6379/0', namespace: "name_{Rails.env}" }
  end

  Sidekiq.configure_client do |config|
    config.redis = { url: 'redis://localhost:6379/0', namespace: "name_{Rails.env}" }
  end
elsif Rails.env.staging?
  Sidekiq.configure_server do |config|
    config.redis = { url: 'redis://redis-xx.xxxx.xxxx.xx.xxx.amazonaws.com:6379/12', namespace: "name_#{Rails.env}" }
  end

  Sidekiq.configure_client do |config|
    config.redis = { url: 'redis://redis-xx.xxxx.xxxx.xx.xxx.amazonaws.com:6379/12', namespace: "name_#{Rails.env}" }
  end
end
0 голосов
/ 30 августа 2018

Среда Sidekiq по умолчанию - development . Один из способов установить это - запустить sidekiq следующим образом

bundle exec sidekiq --environment production
...