我试图不同寻常地执行长任务。 但任务同步进行。延迟作业3.0.5可以运行作业的异步吗?
我试试: 模型:
MyModel < ActiveRecord::Base
def do_something
sleep 10
end
#handle_asynchronously :do_something
end
我从控制器调用它:
def do_it
new_do = MyModel.new id: 1
new_do.delay.do_something
render json: {"status":"200"}
end
获得请求后,我还在等待10秒才给出响应。
所以,我错了,我该怎么做才能运行它并在10秒之前收到控制器的响应?
答案 0 :(得分:0)
您不应将handle_asynchronously
与delay
一起使用。只使用其中一个,而不是同时使用。
如果您的方法应始终在后台运行,请选择#handle_asynchronously
。