| | |
| | | private BPushPlatformAppInfoManager bPushPlatformAppInfoManager; |
| | | |
| | | @Resource |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | @Resource |
| | | private PushExcuteResultManager pushExcuteResultManager; |
| | | |
| | | @Resource |
| | | private RedisTemplate redisTemplate; |
| | | |
| | | |
| | | /** |
| | |
| | | task.setCreateTime(new Date()); |
| | | } |
| | | task.setId(BPushTask.createId()); |
| | | |
| | | if (task.getState() == null) { |
| | | task.setState(BPushTask.STATE_NOT_START); |
| | | } |
| | | |
| | | bPushTaskDao.save(task); |
| | | logger.info("创建推送成功#taskId:{}", task.getId()); |
| | | return task.getId(); |
| | |
| | | } |
| | | |
| | | String key = "task-" + taskId; |
| | | if (!redisTemplate.opsForValue().setIfAbsent(key, "1", 5 * 60, TimeUnit.SECONDS)) { |
| | | |
| | | Boolean s = redisTemplate.opsForValue().setIfAbsent(key, "1", 5 * 60, TimeUnit.SECONDS); |
| | | |
| | | if (s == null || !s) { |
| | | throw new BPushTaskException(BPushTaskException.CODE_BUSY, "服务器繁忙,请稍后再试"); |
| | | } |
| | | logger.info("开始启动推送#taskId:{}", task.getId()); |
| | | updateState(taskId, BPushTask.STATE_PUSHING, null); |
| | | boolean hasDevice = false; |
| | | |
| | | |
| | | try { |
| | | logger.info("开始启动推送#taskId:{}", task.getId()); |
| | | updateState(taskId, BPushTask.STATE_PUSHING, null); |
| | | boolean hasDevice = false; |
| | | |
| | | // 查询可推送的平台 |
| | | List<BPushPlatformAppInfo> list = bPushPlatformAppInfoManager.listByAppCode(task.getAppCode()); |
| | | |
| | |
| | | } |
| | | logger.info("加入推送队列#任务Id:{}#平台:{}#推送数量:{}", task.getId(), result.getPushPlatform().name(), count); |
| | | } |
| | | |
| | | if (!hasDevice) { |
| | | updateState(taskId, BPushTask.STATE_FINSIH, "没有满足条件的可推送设备"); |
| | | } |
| | | } finally { |
| | | redisTemplate.delete(key); |
| | | } |
| | | |
| | | //没有可推送的设备 |
| | | if (!hasDevice) { |
| | | updateState(taskId, BPushTask.STATE_FINSIH, "没有满足条件的可推送设备"); |
| | | } |
| | | |
| | | logger.info("启动推送结束#taskId:{}", task.getId()); |
| | | } |
| | | |