在我的操作中,我发出redirect_to然后运行一些计算。我的代码看起来像下面的
def method_in_controller:
url = params[:url]
redirect_to url
computation_related_to_this_call #Some method which will take some insignificant amount of time
由于redirect_to
在操作结束时执行,因此它会被有效阻止,直到执行redirect_to语句之后的所有语句。这会延迟应用程序对用户的响应(重定向)。如何在不等待其余操作完成执行的情况下对return_to采取行动?
例如,如果computation_related_to_this_call
如下所示,redirect_to
在10秒睡眠后执行。
def computation_related_to_this_call:
sleep(10)
我必须使用后台作业gem(Resque
或Sidekiq
)或Threading
来实现我在这里寻找的目标吗?
答案 0 :(得分:1)
使用回调
before_action :name_of_method, only: [:action_name]
def name_of_method
..
do something
..
end