【问题标题】:Call Delayed Job for an Api Controller为 API 控制器调用延迟作业
【发布时间】:2018-03-30 12:07:16
【问题描述】:
我有以下控制器
class V1::LpDeveloperReferralsController < V1::BaseController
def create
add(a, b).delay
end
def add(a, b)
end
end
我希望能够在 create 方法中调用 add 方法,但将其作为延迟作业运行。
目前,它不这样做。
【问题讨论】:
标签:
ruby-on-rails
ruby
ruby-on-rails-4
delay
delayed-job
【解决方案1】:
您想将此 Api 调用排队以进行外部调用还是发送到另一个端点?
如果对你有帮助,你可以试试下面的..
send_request -> 可以是您自己的方法来向外部进行 API 调用
object -> 你的控制器实例
class ExampleRequestJob
def initialize(object)
@object = object
Delayed::Job.enqueue self
end
def perform
@response = @object.send_request().with_indifferent_access
end
def after(job)
# want to reattempt if failed
end
def error(job, exception)
#failed
end
def success(_job)
# your success
end
end