1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| @Slf4j @Service @AllArgsConstructor public class RabbitMqUtil { private RabbitTemplate rabbitTemplate;
public <T> void sendDefaultMessage(String queueCode, T value) { log.info("(添加默认队列成功) 队列键:{},队列值:{}", queueCode, value); try { rabbitTemplate.convertAndSend(RabbitMqDefaultConstants.DIRECT_DEFAULT, queueCode, value); } catch (Exception e) { log.error("(添加默认队列失败)", e); } }
public <T> void addDelayQueue(String queueCode, T value, Long delayTime, TimeUnit timeUnit) { log.info("(添加延时队列成功) 队列键:{},队列值:{},延迟时间:{}秒", queueCode, value, timeUnit.toSeconds(delayTime)); try { rabbitTemplate.convertAndSend(DIRECT_DELAYED, queueCode, value, message -> { message.getMessageProperties().setHeader("x-delay", timeUnit.toMillis(delayTime)); return message; }); } catch (Exception e) { log.error("(添加延时队列失败) ", e); } }
public <T> void addDelayQueue(String queueCode, T value, Date sendTime) { log.info("(添加定时推送队列成功) 队列键:{},队列值:{},延迟时间:{}秒,实际发送时间为:{}", queueCode, value, DateUtil.between(new Date(), sendTime, DateUnit.SECOND), sendTime); addDelayQueue(queueCode, value, DateUtil.between(new Date(), sendTime, DateUnit.MS, false), TimeUnit.MILLISECONDS); } }
|