Playframework 使用Comet和Play框架检测连接关闭

Playframework 使用Comet和Play框架检测连接关闭,playframework,playframework-2.0,comet,Playframework,Playframework 2.0,Comet,我使用icm iframe下面的函数来运行一个很长的进程(系统查找重复记录,这只是一个读取操作) 但是,如果用户拥有所需的记录并离开页面,则该过程将继续。发生这种情况时,是否有方法检测并终止流程 我希望调用public void onDisconnected(F.Callback0 Callback0),但情况似乎并非如此 public static Result findDuplicatesActor(){ Comet comet = new Comet("parent.cometMe

我使用icm iframe下面的函数来运行一个很长的进程(系统查找重复记录,这只是一个读取操作)

但是,如果用户拥有所需的记录并离开页面,则该过程将继续。发生这种情况时,是否有方法检测并终止流程

我希望调用
public void onDisconnected(F.Callback0 Callback0)
,但情况似乎并非如此

public static Result findDuplicatesActor(){
    Comet comet = new Comet("parent.cometMessage") {
      public void onConnected() {
          int totalRecords = User.find.findRowCount();
          int processed = 0;
          int progress;
          for(User user : User.find.all()){
              progress = Math.round(((float) processed / (float) totalRecords * 100));                 
              sendMessage("{\"progress\":" + progress + ",\"result\":\"OK\"}");
              Logger.info("Progress on duplicate search: " + progress);
              processed++;
          }

          sendMessage("{\"progress\":100,\"result\":\"OK\"}");
          close();
      }

        @Override
        public void close() {
            Logger.info("Connection closed!");
            super.close();
        }

        @Override
        public void onDisconnected(F.Callback0 callback0) {
            Logger.info("Connection disconnected!");
            super.onDisconnected(callback0);
        }
    };

    return ok(comet);
}