簡體   English   中英

如果條件為delay_job,則運行鈎子

[英]run hook if condition with delayed_job

我的控制器上有這份工作:

def action1
 #code here
  order = Order.find(params[:id])
  Delayed::Job.enqueue(ExpiredMessage.new(order), 2, 2.days.from_now)
 #code here
end

我在myapp/app/jobs內部有一個名為expired_message.rb的文件,其中包含下一個內容:

class ExpiredMessage < Struct.new(:order)
 def perform
  #code to run here for example order.save
   order.any_method
 end
end

我只想在if order.status == "PA" perform method內的代碼

如何在保存訂單之前運行鈎子以檢查自定義作業上的if order.status == "PA"

否則,如果order.status!=“ PA”我想在執行該作業之前刪除該作業。

非常感謝你!

如果要從數據庫檢查對象的狀態,請在其上調用reload 否則,只需像檢查其他任何對象一樣對其進行檢查:

def perform
  order.any_method if order.reload.status == "PA"
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM