Mercurial > hg > Database > Alice
view src/alice/topology/manager/keeparive/RemoveTask.java @ 330:d35ff0f588e8
keep alive may work... but bug exist.
author | sugi |
---|---|
date | Mon, 31 Mar 2014 22:28:52 +0900 |
parents | 806cc010a5bd |
children | 8266d7cfba7e |
line wrap: on
line source
package alice.topology.manager.keeparive; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; public class RemoveTask extends CodeSegment { private Receiver info1 = ids.create(CommandType.TAKE); // list private Receiver info2 = ids.create(CommandType.TAKE); // remove task public RemoveTask(){ info1.setKey("_WAITINGLIST"); info2.setKey("_REMOVETASK"); } @Override public void run() { System.out.println("cccc"); ListManager list = info1.asClass(ListManager.class); // explicit cast TaskInfo task = info2.asClass(TaskInfo.class); TaskExecuter exec = TaskExecuter.getInstance(); if (exec.compareNowTask(task)){ // case: remove task is state countdown. System.out.println("delete task"); exec.skip(); } else { boolean removeFlag = false; // case: remove task is still in the waiting queue. for (TaskInfo t: list.getTaskList()){ if (t.getType().equals(task.getType())){ list.getTaskList().remove(t); System.out.println("delete task"); removeFlag = true; break; } } if (!removeFlag){ ods.put("_REMOVETASK", task); } } ods.update("_WAITINGLIST", list); } }