当用户向我的 Rails 应用程序发表评论时,我希望将评论推送到外部 Web 服务。这个外部网络服务可能很慢,所以我想异步进行这个推送。我对来自 Web 服务的响应不感兴趣。
问问题
87 次
1 回答
1
使用任务队列和后台工作者的最佳方式。
例如,看看Sidekiq。或BackgroundJob。或Resque。
基本上,在您的 Rails 应用程序中,您说“我希望在后台调用它”并将任务放入队列(由redis / mysql / erlang /whatever 支持)。然后另一个进程(后台工作人员)从队列中检索任务并执行它们。
对于快速而肮脏的解决方案,您可以使用线程:
Thread.new do
# this stuff will be executed asynchronously
end
但这仅适用于非常小的应用程序。不要在重负载下尝试此操作。
于 2013-01-29T09:03:08.350 回答