0

私のアプリは、異なる環境を使用して、サブドメインごとに異なるデータベース接続を使用するように設定されています。Delayed Job は、あなたが期待することを行い (私は推測します)、ジョブをdelayed_jobs テーブルに挿入するときに、そのリクエストの現在の環境 (および DB 接続) を使用します。

問題は、DJ がこれらすべての異なるテーブルからのジョブを処理できないことです。そのため、DJ にデータベースを 1 つだけ使用するように強制しようとしています。特に、そのためにセットアップされています。これを試してみましたが、うまくいかず、次に何を試せばよいかわかりません。

本当に私の知恵ではこれで終わります。

試みたコード:

Delayed::Job.class_eval do
  establish_connection ActiveRecord::Base.configurations["delayed_job"]
end

DB への接続は で行われbefore_filterますApplicationController

4

1 に答える 1

1

ドメインごとに接続を確立するためのApplicationControllerのコードは、リクエストごとにアプリケーションサーバーでのみ発生します。

Jobクラスに:domain属性を追加し、ジョブをキューに入れるときに設定します。Job#performで、DB接続を確立します。

于 2012-12-15T22:37:28.073 に答える