00:41:20.198 [http-nio-8080-exec-43] INFO c.r.s.s.i.SysPayconfigServiceImpl – [wechatPayNotify,443] – 微信v3通知:{“transaction_id”:”4200001747202302251365106590″,”amount”:{“total”:10.0,”payer_total”:10.0,”currency”:”CNY”,”payer_currency”:”CNY”},”mchid”:”1622981569″,”out_trade_no”:”1677256797404″,”trade_state”:”SUCCESS”,”bank_type”:”OTHERS”,”appid”:”wx8b3a080783d3a8d0″,”trade_state_desc”:”支付成功”,”trade_type”:”NATIVE”,”attach”:””,”success_time”:”2023-02-25T00:41:16+08:00″,”payer”:{“openid”:”oH0bZ6UVzOxjk0AO2mEZ8XplDO5c”}}
00:41:20.230 [http-nio-8080-exec-43] INFO c.r.k.s.i.WebOrderServiceImpl – [onApplicationEvent,146] – 收到支付完成信息:–CommonOrder{orderId=’1677256797404′, status=1, payOrderId=’4200001747202302251365106590′, amount=null, returnUri=’null’, appType=’null’}
00:41:20.232 [http-nio-8080-exec-43] DEBUG c.r.k.m.W.selectWebOrderByorderId – [debug,137] – ==> Preparing: select o.*,w.title,w.isCard,w.category_id,w.openContent,w.paidContent from t_web_order o left join t_web_merchant_works w on o.worksId=w.id where o.orderId = ?
00:41:20.234 [http-nio-8080-exec-43] DEBUG c.r.k.m.W.selectWebOrderByorderId – [debug,137] – ==> Parameters: 1677256797404(String)
00:41:20.277 [http-nio-8080-exec-43] DEBUG c.r.k.m.W.selectWebOrderByorderId – [debug,137] – <== Total: 1
package com.morris.spring.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
@Configuration
@EnableAsync // 开启异步
public class EventListenerConfig {
}
在监听的方法上加上@Async:
package com.morris.spring.listener;
import com.morris.spring.event.CustomEvent;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
@Slf4j
public class AsyncCustomEventListener {
@EventListener({
ContextRefreshedEvent.class, CustomEvent.class})
@Async // 异步
public void listenEvent(ApplicationEvent event) {
log.info("receive event: {}", event);
}
}
也可以自定义执行异步消息的线程池(默认就是SimpleAsyncTaskExecutor):
@Bean
public TaskExecutor executor() {
return new SimpleAsyncTaskExecutor("eventListen-");
}
异步消息只是借用spring的异步执行机制,在方法上加上@Async注解,方法都会异步执行。
01:23:49.841 [http-nio-8080-exec-75] INFO c.r.s.s.i.SysPayconfigServiceImpl – [wechatPayNotify,443] – 微信v3通知:{“transaction_id”:”4200001765202302259152891537″,”amount”:{“total”:10.0,”payer_total”:10.0,”currency”:”CNY”,”payer_currency”:”CNY”},”mchid”:”1622981569″,”out_trade_no”:”1677259400700″,”trade_state”:”SUCCESS”,”bank_type”:”OTHERS”,”appid”:”wx8b3a080783d3a8d0″,”trade_state_desc”:”支付成功”,”trade_type”:”NATIVE”,”attach”:””,”success_time”:”2023-02-25T01:23:46+08:00″,”payer”:{“openid”:”oH0bZ6UVzOxjk0AO2mEZ8XplDO5c”}}
01:23:49.878 [threadPoolTaskExecutor-1] INFO c.r.k.s.i.WebOrderServiceImpl – [onApplicationEvent,150] – 收到支付完成信息:–CommonOrder{orderId=’1677259400700′, status=1, payOrderId=’4200001765202302259152891537′, amount=null, returnUri=’null’, appType=’null’}
01:23:49.879 [threadPoolTaskExecutor-1] DEBUG c.r.k.m.W.selectWebOrderByorderId – [debug,137] – ==> Preparing: select o.*,w.title,w.isCard,w.category_id,w.openContent,w.paidContent from t_web_order o left join t_web_merchant_works w on o.worksId=w.id where o.orderId = ?
01:23:49.880 [threadPoolTaskExecutor-1] DEBUG c.r.k.m.W.selectWebOrderByorderId – [debug,137] – ==> Parameters: 1677259400700(String)
配置以后即可异步执行
版权:言论仅代表个人观点,不代表官方立场。转载请注明出处:https://www.freeman.work/forum/1574.html