我是新手。 只想知道谁可以在产品模式下将sidekiq
作为服务运行。 我没有使用capistano
或任何部署工具。 我有一个想法,就像创建一个初始化文件(如sidekiq.rb
并在其中放一行像RAILS_ENV=production bundle exec sidekiq
。 请让我知道最佳解决方案。
了解您操作系统的服务经理。 在Ubuntu中,这是Upstart。 您需要创建脚本,以便操作系统知道在启动时启动Sidekiq。 这里有Upstart和Runit的示例:
https://github.com/mperham/sidekiq/tree/master/examples
Capistrano不会在启动时启动Sidekiq。
您可以为Sidekiq创建初始化脚本,然后使用该脚本来启动或停止它。
我曾经在下面的链接中提到过一次
https://cdyer.co.uk/blog/init-script-for-sidekiq-with-rbenv/
尝试
bundle exec sidekiq --environment production
查看sidekiq的帮助,这应该是您要查找的命令:
sidekiq --help
-c, --concurrency INT processor threads to use
-d, --daemon Daemonize process
-e, --environment ENV Application environment
您可以通过运行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
ps ax | grep sidekiq
获取进程号并像运行kill <process number>
一样将其kill <process number>
。