3

Heroku で Play フレームワークを使用している場合、重いタスクを実行するために (Akka/RabbitMQ などを使用して) バックグラウンド ジョブ プロセッサを設定する必要がありますか?*

Play がリクエスト内で非同期にタスクを実行する機能を提供していることは知っていますが、バックグラウンドのジョブ プロセッサを必要としないためにはこれで十分でしょうか? Heroku にデプロイされていないスタンドアロンの Play アプリでは、非同期機能により、すべてを 1 つのプロセスで実行できますが、Heroku アプリでは、それだけでは不十分なようです: Professional Heroku Programmingという本によると(254 ページ、 Ruby での開発セクション) では、リクエストを受信して​​からレスポンスが配信されるまでの間、Web dyno はブロックされ、この間、他のすべてのリクエストはキューに入れられます。

バックグラウンド ジョブ プロセッサが必要な場合、例はありますか? Play と Akka、Play と Heroku の例を見たことはありますが、3 つすべてが一緒になっているわけではありません。

*(負荷の高いタスクとは、一般的に、複雑なデータベース クエリの結果や、エンド ユーザーに与えられる Web サービス呼び出しなど、答えを必要とする潜在的に長時間実行されるタスクを意味します。メールの送信など)。

4

1 に答える 1

3

Play を使用する場合、明示的なワーカーは必要ありません。Play 2 の一般的なパターンは、コントローラーでAsync 応答を使用し、長時間実行されるプロセスにはAkkaを使用することです。Play Framework の Web サイトにあるすべての例は、Heroku でそのまま使用できるはずです。

于 2013-02-27T21:56:36.970 に答える