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 アプリの高速化に役立ちます。ただし、そのコードをコントローラーから移動するとアプリが高速化される理由/方法がよくわかりません。コントローラーから別のライブラリに移動するだけです。誰か私に説明できますか?