临时更改为异步执行

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) { public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
factory.setAcknowledgeMode(AcknowledgeMode.MANUAL); factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
factory.setConcurrentConsumers(1);
factory.setMaxConcurrentConsumers(20);
factory.setPrefetchCount(20);
factory.setConnectionFactory(connectionFactory); factory.setConnectionFactory(connectionFactory);
factory.setMessageConverter(new Jackson2JsonMessageConverter()); factory.setMessageConverter(new Jackson2JsonMessageConverter());
return factory; return factory;

View File

@ -40,18 +40,7 @@ public class ListenerImpl {
logger.info("消费者1开始处理消息 {},时间戳:{}" ,message,System.currentTimeMillis()); logger.info("消费者1开始处理消息 {},时间戳:{}" ,message,System.currentTimeMillis());
System.out.println("消费者1开始处理消息"+System.currentTimeMillis()); System.out.println("消费者1开始处理消息"+System.currentTimeMillis());
int github_id = Integer.valueOf(new String(message.getBody())); int github_id = Integer.valueOf(new String(message.getBody()));
try { Task.executeE5(github_id);
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();
}
channel.basicAck(message.getMessageProperties().getDeliveryTag(), true); channel.basicAck(message.getMessageProperties().getDeliveryTag(), true);
/*再次进行添加任务*/ /*再次进行添加任务*/
Task.sendTaskOutlookMQ(github_id); Task.sendTaskOutlookMQ(github_id);

View File

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

View File

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

View File

@ -42,14 +42,14 @@ public class dome01 {
@Test @Test
public void r(){ public void r(){
for (int i = 0; i < 30; i++) { 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){ public String getRandom(int start, int end){
Random r = new Random(); 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; return Expiration;
} }
} }