| | |
| | | } |
| | | } |
| | | |
| | | private synchronized void notifyMsg(String deviceType, Integer device) { |
| | | private synchronized void notifyMsg(String notifyType, Integer device) { |
| | | Config notifyEnableConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "notifyEnable")); |
| | | if(notifyEnableConfig == null){ |
| | | return; |
| | |
| | | } |
| | | String notifyUriPath = notifyUriPathConfig.getValue(); |
| | | |
| | | List<String> keys = notifyUtils.takeKeys(deviceType, device); |
| | | List<String> keys = notifyUtils.takeKeys(notifyType, device); |
| | | if(keys == null){ |
| | | return; |
| | | } |
| | |
| | | if(code == 200){ |
| | | //通知成功 |
| | | redisUtil.del(key); |
| | | return; |
| | | continue; |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | |
| | | if (times >= notifyDto.getFailTimes()) { |
| | | //超过次数 |
| | | redisUtil.del(key); |
| | | return; |
| | | continue; |
| | | } |
| | | |
| | | notifyDto.setLastRetryTime(System.currentTimeMillis()); |
| | | notifyDto.setRetryTimes(times); |
| | | redisUtil.set(key, notifyDto); |
| | | return; |
| | | continue; |
| | | } |
| | | } |
| | | |
| | |
| | | return append(notifyType, device, taskNo, msgType, data); |
| | | } |
| | | |
| | | public synchronized List<String> takeKeys(String deviceType, Integer device) { |
| | | String key = getKey(deviceType, device); |
| | | public synchronized List<String> takeKeys(String notifyType, Integer device) { |
| | | String key = getKey(notifyType, device); |
| | | if(key == null){ |
| | | return null; |
| | | } |
| | |
| | | return list; |
| | | } |
| | | |
| | | public String getKey(String deviceType, Integer device) { |
| | | SlaveType type = SlaveType.findInstance(deviceType); |
| | | if (type == null) { |
| | | return null; |
| | | } |
| | | String key = null; |
| | | switch (type) { |
| | | case Shuttle: |
| | | key = RedisKeyType.QUEUE_SHUTTLE.key + device; |
| | | break; |
| | | case ForkLift: |
| | | key = RedisKeyType.QUEUE_FORK_LIFT.key + device; |
| | | break; |
| | | default: |
| | | return null; |
| | | } |
| | | |
| | | return key; |
| | | } |
| | | |
| | | private boolean append(String notifyType, Integer device, String taskNo, NotifyMsgType msgType, String data) { |
| | | public String getKey(String notifyType, Integer device) { |
| | | String key = null; |
| | | if (notifyType.equals(String.valueOf(SlaveType.Shuttle))) { |
| | | key = RedisKeyType.QUEUE_SHUTTLE.key + device; |
| | |
| | | } else if (notifyType.equals("task")) { |
| | | key = RedisKeyType.QUEUE_TASK.key + device; |
| | | } else { |
| | | return null; |
| | | } |
| | | |
| | | return key; |
| | | } |
| | | |
| | | private boolean append(String notifyType, Integer device, String taskNo, NotifyMsgType msgType, String data) { |
| | | String key = getKey(notifyType, device); |
| | | if(key == null){ |
| | | return false; |
| | | } |
| | | |