jxing %!s(int64=6) %!d(string=hai) anos
pai
achega
036bc67cc9

+ 3 - 3
scheduler/src/main/java/cn/sagacloud/pojo/ChannelHandlerContextWrapper.java

@@ -17,7 +17,6 @@ public class ChannelHandlerContextWrapper {
     private long lastRejectTime;        // unix时间片, 精确到秒
     private final long sendingTimeOut = 15;            // 发送给客户端任务, 如果超过该时间未响应, 则超时, 并将发送的任务状态置为初始状态
     private final long lastRefuseTimeOut = 3600;       // 如果客户端拒绝任务, 则等待lastRefuseTimeOut秒, 才会再分配任务给该客户端
-    private long lastRefuseTime = 0L;
     private String clientInfo;             // mac地址
     // 任务发送中状态map,     key --> taskid, value --> 发送任务时间点,    如果超过15s, 即为超时.
     private Map<Integer, Long> taskSendingStatusMap = new HashMap<>();
@@ -76,10 +75,10 @@ public class ChannelHandlerContextWrapper {
     }
 
     public boolean isLastRefuseTimeOutPassed() {
-        if(lastRefuseTime == 0)
+        if(lastRejectTime == 0)
             return true;
         long currentTime = CommonUtil.getTime();
-        if(currentTime - lastRefuseTimeOut > lastRefuseTime)
+        if(currentTime - lastRefuseTimeOut > lastRejectTime)
             return true;
         return false;
     }
@@ -89,6 +88,7 @@ public class ChannelHandlerContextWrapper {
         if(isAllow==null)
             return;
         DispatchTask.changeStatusByCmd(taskId, Command.AcceptTask, clientInfo);
+        taskSendingStatusMap.remove(taskId);
     }
 
     public void taskSuccess(MessageProto.Message message) {

+ 4 - 2
scheduler/src/main/java/cn/sagacloud/server/DispatchTask.java

@@ -51,6 +51,7 @@ public class DispatchTask implements Runnable {
         TaskModel task = DispatchTask.tasks.get(taskId);
         if(task == null)
             return;
+        task.setTask_sent_time(CommonUtil.getTime());
         task.setTask_last_client(clientInfo);
         task.setTask_status(TaskStatus.getIdByTaskStatus(nextStatus));
         updateTask(task);
@@ -196,12 +197,13 @@ public class DispatchTask implements Runnable {
         return null;
     }
 
-    private static void updateTask(TaskModel task){
+    private static boolean updateTask(TaskModel task){
         try {
-            service.updateTask(task);
+            return service.updateTask(task);
         } catch (Exception e) {
             e.printStackTrace();
             log.error("任务:" + task.getId() + "update失败");
+            return false;
         }
     }
 }