|  |  | 
 |  |  |     // 台车mq交换机 | 
 |  |  |     private static final Map<Integer, ConcurrentLinkedQueue<Task>> CAR_EXCHANGE = new ConcurrentHashMap<>(); | 
 |  |  |  | 
 |  |  |     private static final Map<Integer, LinkedBlockingQueue<Task>> RGV_EXCHANGE = new ConcurrentHashMap<>(); | 
 |  |  |     /** | 
 |  |  |      * mq 交换机初始化 | 
 |  |  |      */ | 
 |  |  | 
 |  |  |         switch (type) { | 
 |  |  |             case Crn: | 
 |  |  |                 CRN_EXCHANGE.put(slave.getId(), new LinkedBlockingQueue<>(1)); | 
 |  |  |                 break; | 
 |  |  |             case Rgv: | 
 |  |  |                 RGV_EXCHANGE.put(slave.getId(), new LinkedBlockingQueue<>(1)); | 
 |  |  |                 break; | 
 |  |  |             case Devp: | 
 |  |  |                 DEVP_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>()); | 
 |  |  | 
 |  |  |      * 如果发现队列已满无法添加的话,会直接返回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); | 
 |  |  |             case Rgv: | 
 |  |  |                 return RGV_EXCHANGE.get(id).offer(task); | 
 |  |  |             case Devp: | 
 |  |  |                 return DEVP_EXCHANGE.get(id).offer(task); | 
 |  |  |             case Barcode: | 
 |  |  | 
 |  |  |         switch (type) { | 
 |  |  |             case Crn: | 
 |  |  |                 return CRN_EXCHANGE.get(id).poll(); | 
 |  |  |             case Rgv: | 
 |  |  |                 return RGV_EXCHANGE.get(id).poll(); | 
 |  |  |             case Devp: | 
 |  |  |                 return DEVP_EXCHANGE.get(id).poll(); | 
 |  |  |             case Barcode: | 
 |  |  | 
 |  |  |         switch (type) { | 
 |  |  |             case Crn: | 
 |  |  |                 return CRN_EXCHANGE.get(id).peek(); | 
 |  |  |             case Rgv: | 
 |  |  |                 return RGV_EXCHANGE.get(id).peek(); | 
 |  |  |             case Devp: | 
 |  |  |                 return DEVP_EXCHANGE.get(id).peek(); | 
 |  |  |             case Barcode: | 
 |  |  | 
 |  |  |     public static void clear(SlaveType type, Integer id){ | 
 |  |  |         switch (type) { | 
 |  |  |             case Crn: | 
 |  |  |                  | 
 |  |  |                 CRN_EXCHANGE.get(id).clear(); | 
 |  |  |                 break; | 
 |  |  |             case Rgv: | 
 |  |  |                 RGV_EXCHANGE.get(id).clear(); | 
 |  |  |                 break; | 
 |  |  |             case Devp: | 
 |  |  |                 DEVP_EXCHANGE.get(id).clear(); | 
 |  |  |                 break; |