Allows Sidekiq using more CPU cores on Ruby MRI by forking multiple processes. Also adds an option to use different command line option workers in the same pool.
Add this line to your application's Gemfile:
Create a config file and specify it's path with the p command line option (the default is config/sidekiq-pool.yml)
Paste the following config and modify it to your needs:
:working_directory: /path/to/working/direcory # optional, needed if HUP reload is used with symlink :workers: - :command: '-q default -q high' :amount: 2 - :command: '-q high -L high_logfile.txt' :amount: 1
$ bundle exec sidekiq-pool -h
Start pool with a non-default path config
$ bundle exec sidekiq-pool -p config/pool_config.yml
TSTP are forwarded to the children. Depending on the version of Sidekiq, you may need to send
TSTP to prepare it for shutdown. For more information, please read signals and sidekiq documentation.
HUP to parent starts new children and then stops old.
When using symlinked working directory
option must be used to pick up new code.
You may want to execute code after process has been forked. It can be done by registering after_fork hook like this
require 'sidekiq/pool' Sidekiq::Pool.after_fork do # run code here end
Bug reports and pull requests are welcome on GitHub at https://github.com/vinted/sidekiq-pool.
The gem is available as open source under the terms of the MIT License.