【发布时间】:2012-05-24 19:26:51
【问题描述】:
我有一个控制器,它接收消息并将数据发布到第 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
但这要求我的对象是一个活动记录对象并保持不变。对于我需要的东西,这似乎有点矫枉过正。
有没有其他方法可以将方法的执行推迟到返回响应之后?
谢谢
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 delayed-job