3

Play Framework 2.1をテストして、クライアントのキャンセル要求またはソケットがクライアント側から閉じられたときに何が起こるかを確認しています。私はこの簡単なプログラムを作成しました:

パッケージコントローラー;

プレイをインポートします。; play.mvcをインポートします。;

インポートviews.html。*;

public class Application extends Controller {

public static Result index() { try{ for(int i=0;i<1000;i++){ Thread.sleep(10000); System.out.println(i+"\n"); } }catch(Exception e){ System.out.println("\nexcepción capturada"); } return ok(index.render("Your new application is ready.")); }

}

クライアント(グーグルクローム)からのリクエストをキャンセルしても、ループは中止されません。これは、実際のアプリケーションでは問題になる可能性があると思います。ループを作成するのではなく、データベースに対して「重い」クエリを実行します。

4

1 に答える 1

6

答えがなかったので、私はグーグルグループで遊び https://groups.google.com/forum/?hl=en#!topic/play-framework/POvFA3moXugを求めました、 そしてこれがTypesafeのJamesRoperが言ったことです:

Playにはそのような機能はありません。ただし、同じことを実現する方法は他にもあります。たとえば、長時間実行されるリクエストがある場合は、WebSocketリクエストとして実行できます。これにより、クライアントが別のページに移動したことを簡単に検出できます。

本日の最新リリースはplay-2.2.0-RC1です(後でサポートを追加する場合に備えて)。

于 2013-09-04T03:55:45.997 に答える