我有一个控制器,它接收消息并将数据发布到第 3 方 url:
def create
@message = Message.new(params[:message])
if @message.valid?
post_to_server(@message)
end
end
private
def post_to_server
# Http Post to 3rd Party Url
end
Message 不是 ActiveRecord 对象。它是一个带有一些 ActiveModel 验证的普通 ruby 对象。
现在我担心的是,如果我的应用程序正在等待来自 3rd 方服务器的响应,它可能会显得很慢。推迟执行此方法以便用户可以立即获得响应并且 post_to_server 部分在后台运行的最佳方法是什么?
我用谷歌搜索了一下,发现了这个:https ://github.com/collectiveidea/delayed_job
但这要求我的对象是一个活动的记录对象并保持不变。对于我需要的东西,这似乎有点矫枉过正。
有没有其他方法可以将方法的执行推迟到返回响应之后?
谢谢