我使用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);
}