|  |  | 
 |  |  |      * 如果发现队列已满无法添加的话,会直接返回false。 | 
 |  |  |      */ | 
 |  |  |     public static boolean offer(SlaveType type, Integer id, Task task) { | 
 |  |  |         CommandUtils.offer(type, id, task); | 
 |  |  |         switch (type) { | 
 |  |  |             case Crn: | 
 |  |  |                 return CRN_EXCHANGE.get(id).offer(task); | 
 |  |  | 
 |  |  |                 break; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     public static boolean offer(SlaveType type, Integer devpId, Task task, Runnable callback) { | 
 |  |  |         boolean result = offer(type, devpId, task); // 先执行原有任务逻辑 | 
 |  |  |         if (result && callback != null) { | 
 |  |  |             new Thread(() -> { | 
 |  |  |                 try { | 
 |  |  |                     Thread.sleep(200); // 模拟任务执行时间 | 
 |  |  |                     callback.run(); | 
 |  |  |                 } catch (InterruptedException e) { | 
 |  |  |                     Thread.currentThread().interrupt(); | 
 |  |  |                 } | 
 |  |  |             }).start(); | 
 |  |  |         } | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |