0

遅延のある実行メソッドにdelayed_jobgemを使用しています。

最初にメソッドを実行し、この最初のメソッドが終了したら、2番目のメソッドを実行します。

1ºメソッド

Order.delay(queue: "Job", priority: 1, run_at: job.minutes_to_in_progress_overtime.minute.from_now).inprogress_overtime(job)

2ºメソッド

Order.delay(queue: "Job", priority: 1, run_at: job.minutes_to_cancel_due_to_overtime.minute.from_now).canceled_overtime(job)

これが私のクラスの注文です:

class Order

  def self.inprogress_overtime(job)
   #actions goes here
  end

  def self.canceled_overtime(job)
   #actions goes here
  end

 end

どうすればできますか?

どうもありがとうございました!

4

1 に答える 1

1

あなたが求めていることに基づいて、私はそれがこれと同じくらい簡単だと思いますか?

# enqueue the inprogress_overtime
Order.delay(queue: "Job", priority: 1, run_at: job.minutes_to_in_progress_overtime.minute.from_now).inprogress_overtime(job)

class Order

  def self.inprogress_overtime(job)
    # actions goes here

    # now enqueue the canceled_overtime
    Order.delay(queue: "Job", priority: 1, run_at: job.minutes_to_cancel_due_to_overtime.minute.from_now).canceled_overtime(job)
  end

  def self.canceled_overtime(job)
    # actions goes here
  end

end

注:その時点ですでにバックグラウンドジョブを実行しているため、inprogress_overtimeからの遅延は必要ない場合がありますか?

于 2012-09-11T18:26:09.947 に答える