40 lines
1.4 KiB
Java
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);
|
|
}
|
|
|
|
}
|
|
}
|