как запустить sidekiq в рабочем режиме

#ruby-on-rails #ruby-on-rails-4 #sidekiq

#ruby-на-рельсах #ruby-on-rails-4 #sidekiq

Вопрос:

Я новичок в rails. просто хочу знать, кого я могу запустить sidekiq в режиме продукта как сервис. Я не использую capistano или какой-либо инструмент развертывания. У меня есть мысль, например, создать файл инициализатора, подобный sidekiq.rb и внутри которого поместить строку, подобную RAILS_ENV=production bundle exec sidekiq . Пожалуйста, дайте мне знать лучшее решение.

Комментарии:

1. используйте capistrano … просто сделайте это, и поблагодарите меня позже =)

Ответ №1:

Изучите диспетчер служб вашей операционной системы. В Ubuntu это Выскочка. Вам нужно создать сценарии, чтобы ваша ОС знала, что нужно запускать Sidekiq при загрузке. Здесь есть примеры для Upstart и Runit:

https://github.com/mperham/sidekiq/tree/master/examples

Capistrano не запустит Sidekiq при загрузке.

Ответ №2:

Вы можете создать сценарий инициализации для Sidekiq и использовать его для запуска или остановки.

Я однажды ссылался на приведенную ниже ссылку для того же самого

https://cdyer.co.uk/blog/init-script-for-sidekiq-with-rbenv/

Ответ №3:

Попробуйте

bundle exec sidekiq --environment production

Глядя на справку для sidekiq, это должна быть команда, которую вы ищете:

 sidekiq --help

-c, --concurrency INT            processor threads to use
-d, --daemon                     Daemonize process
-e, --environment ENV            Application environment
 

Комментарии:

1. да, но как я могу использовать это как услугу?? так что каждый раз мне не нужно писать одно и то же

Ответ №4:

Вы можете запустить его, выполнив bundle exec sidekiq -C config/sidekiq_config.yml -d -L /path/to/logs/folder/log/sidekiq.log

пример sidekiq_config:

 # sidekiq -C config/sidekiq_config.yml
---
:environment: production
:verbose: false
:pidfile: ./tmp/pids/sidekiq.pid
:concurrency:  4
:queues:
  - default
  - ts_delta
 

Чтобы остановить его, вы можете запустить ps ax | grep sidekiq get the process number и убить его, как запущенный kill <process number> .