2

受信したURLを解析し、重い処理を実行して結果のJSONを返す他のrubyスクリプトを呼び出す単純なWebサーバーが必要です。

ゴリアテはこれに適していますか?私が見る限り、リクエストは順番に処理されています。これを正しくするために私は何をすべきですか?

class MyServer < Goliath::API
  def response(env)
    res = create_json_response(env["REQUEST_URI"])
    [200, {}, res]
  end
end
4

1 に答える 1

4

より完全な例については、「echo」の例をご覧ください: https://github.com/postrank-labs/goliath/blob/master/examples/echo.rb

Goliath は意図的にスタックを構築し、デフォルトではほとんど想定しないようにします。これにより、スタックを最適化する柔軟性が得られますが、事前のセットアップがいくらか必要になります。

リクエストは、イベント ループから提供されるという意味で「順次」処理されます。IO でブロックされている場合、goliath は次のリクエストの処理を開始します。しかし、CPU を集中的に使用する計算をしばらく行うことにした場合は、reactor がブロックされます。つまり、これは他の「イベント化された」フレームワーク (ノードなど) とまったく同じ動作です。

負荷の高い CPU 処理を行う必要がある場合は、その作業をワーク キューまたは専用ワーカーにスピンアウトする必要があります。

于 2012-03-27T06:47:10.110 に答える