changeset 499:d3442b23e3df dispose

bug fix scheduler
author sugi
date Mon, 15 Dec 2014 20:04:04 +0900
parents e5d2141af6c2
children a03d0a570963
files src/main/java/alice/topology/manager/keeparive/CheckExistTask.java src/main/java/alice/topology/manager/keeparive/CreateSchedule.java src/main/java/alice/topology/manager/keeparive/CreateTask.java src/main/java/alice/topology/manager/keeparive/StartKeepAlive.java src/main/java/alice/topology/manager/keeparive/TaskExecuter.java
diffstat 5 files changed, 19 insertions(+), 60 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/alice/topology/manager/keeparive/CheckExistTask.java	Mon Dec 15 19:16:20 2014 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-package alice.topology.manager.keeparive;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-
-public class CheckExistTask extends CodeSegment{
-    private Receiver info = ids.create(CommandType.PEEK); // TaskInfo
-
-    public CheckExistTask(){
-        info.setKey("_TASKINFO");
-    }
-
-    @Override
-    public void run() {
-        new CreateSchedule();
-
-    }
-
-}
--- a/src/main/java/alice/topology/manager/keeparive/CreateSchedule.java	Mon Dec 15 19:16:20 2014 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-package alice.topology.manager.keeparive;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-
-public class CreateSchedule extends CodeSegment{
-    private Receiver info1 = ids.create(CommandType.TAKE); // WaitingList
-    private Receiver info2 = ids.create(CommandType.TAKE); // TaskInfo
-
-    public CreateSchedule(){
-        info1.setKey("_WAITINGLIST");
-        info2.setKey("_TASKINFO");
-    }
-
-    @Override
-    public void run() {
-        ListManager manager = info1.asClass(ListManager.class);
-        TaskInfo newTask = info2.asClass(TaskInfo.class);
-        manager.addTask(newTask);
-        ods.update("_WAITINGLIST", manager);
-        new CheckExistTask();
-    }
-}
--- a/src/main/java/alice/topology/manager/keeparive/CreateTask.java	Mon Dec 15 19:16:20 2014 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/CreateTask.java	Mon Dec 15 20:04:04 2014 +0900
@@ -1,33 +1,34 @@
 package alice.topology.manager.keeparive;
 
 import java.util.List;
+
 import alice.codesegment.CodeSegment;
 import alice.datasegment.CommandType;
 import alice.datasegment.Receiver;
 
 public class CreateTask extends CodeSegment{
     private Receiver info = ids.create(CommandType.PEEK);
+    private Receiver info1 = ids.create(CommandType.TAKE);
 
     public CreateTask(){
         info.setKey("_CLIST");
+        info1.setKey("_WAITINGLIST");
     }
 
     @Override
     public void run(){
         @SuppressWarnings("unchecked")
-        List<String> list = info.asClass(List.class);
+        List<String> clist = info.asClass(List.class);
+        ListManager list = info1.asClass(ListManager.class);
 
         int i = 5;
-        for (String manager : list){
+        for (String manager : clist){
             TaskInfo task = new TaskInfo(TaskType.PING);
             task.setInfo(manager, "_FORM_"+manager, i * 1000);
-            ods.put("_TASKINFO", task);
+            list.addTask(task);
             i +=5;
         }
-
-        TaskInfo task = new TaskInfo(TaskType.CREATE);
-        task.setSleepTime((i + 15) * 1000);
-        ods.put("_TASKINFO", task);
+        ods.update(info1.key, list);
 
     }
 }
--- a/src/main/java/alice/topology/manager/keeparive/StartKeepAlive.java	Mon Dec 15 19:16:20 2014 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/StartKeepAlive.java	Mon Dec 15 20:04:04 2014 +0900
@@ -8,10 +8,8 @@
     public void run() {
         ods.put("_WAITINGLIST", new ListManager());
         TaskExecuter.getInstance().setKey();
-        TaskInfo task = new TaskInfo(TaskType.CREATE);
-        task.setSleepTime(0);
-        ods.put("_TASKINFO", task);
-        new CheckExistTask();
+
+        //new CheckExistTask();
 
     }
 
--- a/src/main/java/alice/topology/manager/keeparive/TaskExecuter.java	Mon Dec 15 19:16:20 2014 +0900
+++ b/src/main/java/alice/topology/manager/keeparive/TaskExecuter.java	Mon Dec 15 20:04:04 2014 +0900
@@ -28,18 +28,21 @@
     public synchronized void run()  {
         ListManager list = info.asClass(ListManager.class);
         if (list.getTaskList().size() == 0){
+            TaskInfo task = new TaskInfo(TaskType.CREATE);
+            task.setSleepTime(3000 + remainingTime);
+            list.addTask(task);
+            ods.update("_WAITINGLIST", list);
             remainingTime = 0;
-            ods.update("_WAITINGLIST", list);
         } else {
+            list.show();
             nowTask = list.getTaskList().poll();
-            ods.update("_WAITINGLIST", list);
-
+            if (nowTask.getType() !=TaskType.PING)
+                ods.update("_WAITINGLIST", list);
             if (skipFlag) {
                 skipFlag = false;
                 nowTask.setSleepTime(remainingTime + nowTask.getSleepTime());
                 remainingTime = 0;
             }
-            list.show();
             startTime = System.currentTimeMillis();
             if (nowTask.getSleepTime() != 0){
                 sleepFlag = true;
@@ -57,7 +60,8 @@
                     ods.ping(nowTask.getManagerKey(), nowTask.getReturnKey());
                     TaskInfo task = new TaskInfo(TaskType.CLOSE);
                     task.setInfo(nowTask.getManagerKey(), 10 * 1000);
-                    ods.put("_TASKINFO", task);
+                    list.addTask(task);
+                    ods.update("_WAITINGLIST", list);
                     new RespondPing(nowTask.getReturnKey());
                 } else if (nowTask.getType() == TaskType.CLOSE) {
                     // no response from the Remote DataSegment. So close this connection.