Mercurial > hg > Database > Alice
view src/main/java/alice/topology/manager/keeparive/RespondPing.java @ 498:e5d2141af6c2 dispose
keep alive Scheduler has bug
author | sugi |
---|---|
date | Mon, 15 Dec 2014 19:16:20 +0900 |
parents | 7d67bc538549 |
children | a03d0a570963 |
line wrap: on
line source
package alice.topology.manager.keeparive; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; public class RespondPing extends CodeSegment{ private Receiver respond = ids.create(CommandType.TAKE); private long pingedTime = System.currentTimeMillis(); public RespondPing(String key) { respond.setKey(key); this.setPriority(10); } @Override public void run() { TaskExecuter exec = TaskExecuter.getInstance(); synchronized (exec){ RespondData d = respond.asClass(RespondData.class); System.out.print("ping from "+d.from); System.out.println(" Recieved time "+(d.time - pingedTime)); TaskInfo task = new TaskInfo(TaskType.CLOSE); task.setInfo(d.from, null, 0); if (!exec.compareAndSkip(task)){ System.out.println("falied RespondPing"); // case: remove task is still in the waiting queue. ods.put("_REMOVETASK",task); new RemoveTask(); } } } }