【发布时间】:2012-09-28 00:15:58
【问题描述】:
我在 Raiscast 上关注了这个关于 Resque 的教程:http://railscasts.com/episodes/271-resque
在教程中,有一个关于代码荧光笔的示例,它位于控制器的 #create 方法中:
def create
@snippet = Snippet.new(params[:snippet])
if @snippet.save
uri = URI.parse('http://pygments.appspot.com/')
request = Net::HTTP.post_form(uri, {'lang' => @snippet.language, 'code' => @snippet.plain_code})
@snippet.update_attribute(:highlighted_code, request.body)
redirect_to @snippet, :notice => "Successfully created snippet."
else
render 'new'
end
end
据说
“通过 Rails 请求与外部服务通信是 通常是一个坏主意,因为他们可能会回复缓慢,因此会占用您的 整个 Rails 进程和任何其他尝试连接的请求 它。将外部请求移到外部请求要好得多 过程。我们将设置 Resque,以便我们可以将请求移动到 Resque 工作人员。”
它想说的是:Resque 有助于加快 Rails 应用程序的速度。但是,我不太明白为什么/如何将这段代码移出控制器来加速应用程序。它寻找我只是将它从控制器移动到另一个库。谁能给我解释一下?
【问题讨论】:
标签: ruby-on-rails controller resque worker