1

したがって、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がスレッドを開始する場所のようですが、開始/停止にフックする方法がわかりませんか?

4

1 に答える 1