2

私はPlayを調べてきました!フレームワークと私は私のプロジェクトの1つをそれに変換することに興味があります。ただし、このプロジェクトでは、ユーザーの操作時に長時間実行されるスレッドが生成される必要がありますが、スレッドの結果は通常の要求/応答メソッドを介してユーザーに返されません。代わりに、ユーザーは開始したスレッドを監視するページにリダイレクトされます。

したがって、ユーザーが/ startにPOSTするたびにスレッドを作成するユーザーアクションを作成するにはどうすればよいのでしょうか。ただし、スレッドは自動的に「バックグラウンド」に入り、ユーザーは「ok」やリダイレクトなどの応答を受け取ります。 、スレッドの出力ではなく。

また、スレッドをある程度制御する必要があります。つまり、スレッドを作成して実行したままにするだけではありません。ユーザーがスレッドの開始後に(たとえば/ stopにアクセスして)スレッドを停止できるように、ある種のグローバル参照ポイントが必要です。

4

2 に答える 2

2

新しいThreadインスタンスを生成するのではなく、代わりにインスタンスを使用しActorます。これらは、バックグラウンドでノンブロッキング タスクを実行するための、よりシンプルで堅牢なモデルです。

詳細については、PlayAkkaのドキュメントを参照してください。

于 2012-10-25T11:35:45.873 に答える
2

Play は、バックグラウンドで定期的に、またはアプリケーションの起動時に実行できる特別な Job を提供していますが、それはあなたには適していないと思います。

あなたの場合、Java APIを使用して新しいタスクを生成するThreadか、新しいタスクをに送信し、ユーザーに応答を返すことができます。Executor停止Threadするには、ループと中断フラグを使用した標準的なアプローチを使用できます。ここでは Play フレームワークから特別なものはなく、通常の Java API だけです。

于 2012-10-23T08:51:02.137 に答える