Files
cai-server/ruoyi-websocket-boot/src/main/java/com/ruoyi/consumer/RoomCheckDelayMqConsumer.java
张良(004796) 4d10fe5611 123
2024-04-12 10:52:00 +08:00

40 lines
1.4 KiB
Java

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);
}
}
}