2014-07-02 41 views
0

我尝试异常地运行长时间的任务。 但同步运行的任务。是否延迟作业3.0.5可以运行作业的异步?是delayed_job异步?

我想尝试: 型号:

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 

GET请求后,我给我响应之前仍在等待10秒。 那么,我错了,我能做些什么来运行它,并在10秒之前从控制器接收响应?

+1

你可能有一个拼写错误在你的行动'做it'与变量'new_so'。 –

+0

你不应该同时使用'delay'和'handle_asynchronously',一个排除另一个 – mdesantis

+0

我评论thhis稍后@rdlh评论 –

回答

0

不应该使用handle_asynchronouslydelay。只使用其中一种,而不是同时使用。

如果您的方法应该始终在后台运行,请选择#handle_asynchronously

Documentation here

+0

是的,我尝试没有'handle_asynchronously'。没有其他的。应用程序和工作人员重新启动,但工作同步运行无论如何。我也试过'handle_asynchronously',没有'.delay'。无论如何同步全天! ^) –

+0

Bah新闻哈哈! '耙子工作:明确&&耙子工作:工作完成? –

+0

我使用脚本调用RAILS_ENV =开发脚本/ delayed_job重新启动,并从数据库手动deletind delayed_job记录。所以,我重新启动了puma和nginx和服务器。没有任何帮助我。 –