[英]execute controller method with delayed_job gem
我的控制器中有一個方法,我需要在延遲作業方法中執行:
這是我的order controller action
:
class OrdersController < ApplicationController
def create
#code here
order = Order.first
Order.delay(queue: "order", priority: 1, run_at: 2.minutes.from_now).expire_order(order)
end
def template_expired_order(order)
#code here
end
end
這是我的order model:
class Order
include Mongoid::Document
include Mongoid::Timestamps::Created
.
.
.
#delayed jobs method
def self.expire_order(order)
#code here
end
end
我想在執行或觸發或觸發self.expire_order(order)
方法時執行控制器方法template_expired_order(order)
。
我該怎么做?
非常感謝你!
您不應將與模型相關的代碼放入控制器中,尤其是要在后台作業中運行它時。 目前尚不清楚template_expired_order的功能,但我建議將其放在Order模型中,並在傳遞給expired_order的訂單上直接調用它。
class Order
def expire_order(order)
order.template_expired_order
end
def template_expired_order
# code
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.