| | |
| | | import com.ks.push.pojo.DO.BPushTask; |
| | | import com.ks.push.pojo.DO.BPushTaskExcuteResult; |
| | | import com.ks.push.pojo.DO.PushPlatform; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | |
| | | @Component |
| | | public class PushExcuteResultManager { |
| | | |
| | | private Logger logger = LoggerFactory.getLogger(PushExcuteResultManager.class); |
| | | |
| | | @Resource |
| | | private BPushTaskExcuteResultMapper bPushTaskExcuteResultMapper; |
| | | |
| | | |
| | | @Resource |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | private RedisTemplate<String, String> redisTemplate; |
| | | |
| | | @Resource |
| | | private BPushTaskDao bPushTaskDao; |
| | |
| | | result.setId(BPushTaskExcuteResult.createId(taskId, pushPlatform)); |
| | | //初始化 |
| | | bPushTaskExcuteResultMapper.insertSelective(result); |
| | | |
| | | String key = getRedisKey(taskId, pushPlatform); |
| | | redisTemplate.delete(key); |
| | | return result; |
| | |
| | | */ |
| | | public void batchPushFinish(BPushDeviceDataSet dataSet, PushPlatform pushPlatform) { |
| | | String key = getRedisKey(dataSet.getTaskId(), pushPlatform); |
| | | redisTemplate.opsForSet().remove(key, dataSet.getBatchId()); |
| | | Long size = redisTemplate.opsForSet().size(key); |
| | | redisTemplate.opsForSet().remove(key, dataSet.getBatchId()); |
| | | Long afterSize = redisTemplate.opsForSet().size(key); |
| | | logger.info("{}推送剩余数量 taskId-{} size-{} afterSize-{}", pushPlatform.name(), dataSet.getTaskId(), size + "", afterSize + ""); |
| | | //判断是否推送完成 |
| | | if (size == null || size == 0L) { |
| | | if (afterSize == null || afterSize == 0L) { |
| | | //已经推送完了 |
| | | String id = BPushTaskExcuteResult.createId(dataSet.getTaskId(), pushPlatform); |
| | | BPushTaskExcuteResult update = new BPushTaskExcuteResult(); |
| | |
| | | updateTask.setStateDesc("推送完成"); |
| | | updateTask.setUpdateTime(new Date()); |
| | | bPushTaskDao.updateSelective(updateTask); |
| | | logger.info("{}推送完成 taskId-{}", pushPlatform.name(), dataSet.getTaskId()); |
| | | } |
| | | } |
| | | } |