临时更改为异步执行

This commit is contained in:
APLS 2020-04-19 23:47:36 +08:00
parent 6591358b8c
commit 37e40bdcd8
5 changed files with 41 additions and 33 deletions

View File

@ -84,6 +84,10 @@ public class RabbitMQConfig {
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
factory.setConcurrentConsumers(1);
factory.setMaxConcurrentConsumers(20);
factory.setPrefetchCount(20);
factory.setConnectionFactory(connectionFactory);
factory.setMessageConverter(new Jackson2JsonMessageConverter());
return factory;

View File

@ -40,18 +40,7 @@ public class ListenerImpl {
logger.info("消费者1开始处理消息 {},时间戳:{}" ,message,System.currentTimeMillis());
System.out.println("消费者1开始处理消息"+System.currentTimeMillis());
int github_id = Integer.valueOf(new String(message.getBody()));
try {
Outlook Outlook = outlookService.getOne(new QueryWrapper<Outlook>().eq("github_id", github_id));
if (Outlook == null) {
logger.warn("未找到此用户,github_id: {}",github_id);
/*这里也发送ack不然会照成队列堆积*/
channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
return;
}
outlookService.getMailList(Outlook);
} catch (Exception e) {
e.printStackTrace();
}
Task.executeE5(github_id);
channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
/*再次进行添加任务*/
Task.sendTaskOutlookMQ(github_id);

View File

@ -10,4 +10,6 @@ public interface ITask {
void sendTaskOutlookMQ(int github_id);
void sendTaskOutlookMQALL();
void executeE5(int github_id);
}

View File

@ -38,12 +38,12 @@ public class TaskImpl implements ITask {
public void sendTaskOutlookMQ(int github_id) {
Outlook Outlook = outlookService.getOne(new QueryWrapper<Outlook>().eq("github_id", github_id));
if (Outlook == null) {
logger.warn("未找到此用户,github_id: {}",github_id);
logger.warn("未找到此用户,github_id: {}", github_id);
return;
}
/*根据用户设置生成随机数*/
String Expiration = getRandom( Outlook.getCronTimeRandomStart(),Outlook.getCronTimeRandomEnd());
send(github_id,Expiration);
String Expiration = getRandom(Outlook.getCronTimeRandomStart(), Outlook.getCronTimeRandomEnd());
send(github_id, Expiration);
}
@ -55,16 +55,28 @@ public class TaskImpl implements ITask {
while (iterator.hasNext()) {
Outlook next = iterator.next();
/*根据用户设置生成随机数*/
String Expiration = getRandom( next.getCronTimeRandomStart(),next.getCronTimeRandomEnd());
String Expiration = getRandom(next.getCronTimeRandomStart(), next.getCronTimeRandomEnd());
send(next.getGithubId(), Expiration);
}
}
@Override
@Async
public void executeE5(int github_id) {
Outlook Outlook = outlookService.getOne(new QueryWrapper<Outlook>().eq("github_id", github_id));
if (Outlook == null) {
logger.warn("未找到此用户,github_id: {}", github_id);
return;
}
outlookService.getMailList(Outlook);
}
/**
* 发送消息到队列
*
* @param Expiration
* @Description:
* @param: * @param msg
* @param Expiration
* @return: void
* @Author: 落叶随风
* @Date: 2020/4/16
@ -82,14 +94,15 @@ public class TaskImpl implements ITask {
/**
* 生成随机数
*
* @param end
* @Description:
* @param: * @param start
* @param end
* @return: java.lang.String
* @Author: 落叶随风
* @Date: 2020/4/16
*/
public String getRandom(int start, int end){
public String getRandom(int start, int end) {
Random r = new Random();
String Expiration = String.valueOf((r.nextInt(end - start + 1) + start) * 1000);
return Expiration;

View File

@ -42,14 +42,14 @@ public class dome01 {
@Test
public void r(){
for (int i = 0; i < 30; i++) {
System.out.println(getRandom(60,120));
System.out.println(getRandom(3600,7200));
}
}
public String getRandom(int start, int end){
Random r = new Random();
String Expiration = String.valueOf((r.nextInt(end-start +1) + start));
String Expiration = String.valueOf((r.nextInt(end-start +1) + start) );
return Expiration;
}
}