Rails:如何为长时间运行的作业立即发送json响应

时间:2017-11-09 15:38:23

标签: ruby-on-rails ruby-on-rails-4

我正在处理长期工作。我从控制器调用长时间运行的方法。我想立即向用户发送json响应。下面是我的代码,但它不起作用。

def process
 p = Proces.new(:status => "in-progress")
 render :json => {:id => process.id}
 long_running_job()
end

我如何立即发送json响应?

1 个答案:

答案 0 :(得分:2)

您需要在后台作业队列中运行long_running_job。这将使您的长时间运行任务在Web请求周期之外发生,允许您立即返回JSON,而您的长时间运行的进程将在其他地方继续。如果您使用的是Rails 4.2+和/或ActiveJob,请查看Sidekiq