package com.ruoyi.consumer; import com.ruoyi.cai.mq.AmqpWsProducer; import com.ruoyi.cai.mq.constant.ws.RoomCheckDelayWsMqConstant; import com.ruoyi.cai.ws.job.JobResp; import com.ruoyi.job.RoomCheckJobService; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Slf4j @Component public class RoomCheckDelayMqConsumer { @Autowired private AmqpWsProducer amqpWsProducer; @Autowired private RoomCheckJobService roomCheckJobService; @RabbitListener(queues = RoomCheckDelayWsMqConstant.QUEUE_NAME ,containerFactory = "customContainerFactory") public void sendRoomCheck(String roomIdStr) { log.info("开始执行房间检测: roomId={}",roomIdStr); try { Long roomId = Long.valueOf(roomIdStr); JobResp resp = roomCheckJobService.checkRoom(roomId); if(resp.isNextCreateJob()){ // 1分钟后继续执行 log.info("1分钟后继续执行房间检测: roomId={}",roomIdStr); amqpWsProducer.sendRoomCheckDelay(roomIdStr,60); } }catch (Exception e){ log.error("每分钟定时检测房间失败! roomId={}",roomIdStr); }finally { log.info("结束执行房间检测: roomId={}",roomIdStr); } } }