したがって、Sidekiq スレッドごとに 1 つの RabbitMQ 接続とチャネルを作成できる必要があります。作成しないと、RabbitMQ 接続が不足し、ドキュメントで提案されているためです。ドキュメントはUnicornでそれを行う方法を示しています:
before_fork do |server, worker|
$rabbitmq_connection.close if $rabbitmq_connection
end
after_fork do |server, worker|
# the following is *required* for Rails + "preload_app true",
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
$rabbitmq_connection = Bunny.new
$rabbitmq_connection.start
$rabbitmq_channel = $rabbitmq_connection.create_channel
end
end
Sidekiq スレッドで同様のことを行うことは可能ですか? でできることはありSidekiq.server_configure
ますか?これはSidekiqがスレッドを開始する場所のようですが、開始/停止にフックする方法がわかりませんか?