#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>
.