0

ジョブが実際に実行されたときに評価されるアクティブレコードクエリ(または条件)を含む遅延ジョブをスケジュールしたいと思います。

元。通知を生成してユーザーに送信するカスタムジョブがあります。通知の送信先となるユーザーをフィルタリングするパラメーター/クエリ/条件をジョブに送信したいと思います。

文字列を評価することはできますが、それはとても醜いようです。

プロジェクトはRails2.3.5を使用しているため、Arelルートに移動できません。

Ambitionに関するものはありますが、2008年以降は何も表示されていないため、プロジェクトのステータスはわかりません。

提案?

4

1 に答える 1

1

条件などをハッシュとして作成時にジョブに送信し、ActiveRecordで通常行うのと同じように使用できます。おそらくこのようなもの:

class NotificationJob < Struct.new(:message, :query)

  def perform
    @users = User.all(query)
    ...
  end

end

次に、次のようにジョブを作成します。

query = {:conditions => ["users.company_id = ?", @company.id]}
Delayed::Job.enqueue(NotificationJob.new("There is no cake",query), 0, Time.now)

これがうまくいかない場合は、おそらく現在のコードを提供できます。

于 2010-12-10T04:28:48.027 に答える