5. Spring Boot 异步任务与事件驱动(springboot异步不生效)

@Configuration

@EnableAsync

public class AsyncConfig {

@Bean(name = "taskExecutor")

public Executor taskExecutor() {

ThreadPoolTaskExecutor executor = new 6n.oOoo10.MoBI157ThreadPoolTaskExecutor();

executor.setCorePoolSize(5);

executor.setMaxPoolSize(10);

executor.setQueueCapacity(25);

executor.setThreadNamePrefix("Async-");

executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());

executor.initialize();

return executor;

}

}

@Service

@Slf4j

public class NotificationService {

private final JavaMailSender mailSender;

private final ApplicationEventPublisher eventPublisher;

public NotificationService(JavaMailSender mailSender, ApplicationEventPublisher eventPublisher) {

this.mailSender = 6ei.oOoo4.MoBI161mailSender;

this.eventPublisher = eventPublisher;

}

@Async("taskExecutor")

public CompletableFuture<Void> sendOrderConfirmationEmail(Order order) {

try {

// 构建邮件内容

MimeMessage message = mailSender.createMimeMessage();

MimeMessageHelper helper = new MimeMessageHelper(message, true);

helper.setTo(order.getUserEmail());

helper.setSubject("订单确认通知");

helper.setText(buildOrderEmailContent(order), true);

mailSender.send(message);

log.info("订单 {} 确认邮件发送成功", order.getId());

// 发布事件

eventPublisher.publishEvent(new EmailSentEvent(this, order.getId(), order.getUserEmail()));

return CompletableFuture. 7q.oOoo5.MoBI162completedFuture(null);

} catch (Exception e) {

log.error("订单 {} 邮件发送失败", order.getId(), e);

return CompletableFuture.failedFuture(e);

}

}

private String buildOrderEmailContent(Order order) {

// 构建邮件内容逻辑

return "";

}

}

// 事件监听

@Component

public class EmailEventListened {

@EventListener

public void handleEmailSentEvent(EmailSentEvent event) {

// 记录邮件发送日志到数据库

log.info("邮件发送事件处理: 订单={}, 邮箱={}", event.getOrderId(), event.getEmail());

}

}

// 自定义事件

public class EmailSentEvent extends ApplicationEvent {

private final Long orderId;

private final String email;

public EmailSentEvent(Object source, Long orderId, String email) {

super(source);

this.orderId = orderId;

this.email = email;

}

// getters

}

特别声明:[5. Spring Boot 异步任务与事件驱动(springboot异步不生效)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

高梵入驻杭州大厦,为什么说高端矩阵进入“生态重构”时刻?(高梵线下门店)

探查高梵的策略:通过中国非遗以及本土文化叙事,满足消费者对情绪和文化的需求;用专业的技术语言与消费者沟通,让其直观了解产品参数与核心价值;以顶奢渠道的布局,持续强化品牌的高端化认知;消费者购买后的体验与分享…

高梵入驻杭州大厦,为什么说高端矩阵进入“生态重构”时刻?(高梵线下门店)

果盘在家用客厅茶几上的摆盘艺术:2026年最流行零食收纳新趋势?(家庭果盘放什么水果)

想知道如何在家用客厅茶几上布置美观又实用的果盘吗?本文详细介绍了果盘、糖果盒、干果盒等新年摆盘的选择标准、使用技巧及最新潮流趋势。帮你轻松打造温馨舒适的家居氛围。

果盘在家用客厅茶几上的摆盘艺术:2026年最流行零食收纳新趋势?(家庭果盘放什么水果)

美国宇航局开始进行载人绕月飞行前的关键测试(美国宇航局计划)

每经AI快讯,美国宇航局(NASA)当地时间1月31日开始为期两天的模拟倒计时,为新型登月火箭的燃料加注做准备。据悉,这是一项至关重要的测试,将决定四名宇航员何时搭乘火箭进行绕月飞行。指挥官里德·怀斯曼及其机…

美国宇航局开始进行载人绕月飞行前的关键测试(美国宇航局计划)

泰安市永强网业有限公司:渗排水塑料盲沟异性塑料盲沟hdpe塑料盲沟排水塑料盲沟圆形塑料盲沟专业制造,行业应用广泛(泰安市永强网业公司地址)

在铁路工程中,公司的产品为铁路路基提供了可靠的排水保障,确保了铁路的安全运行;在水利工程中,公司的产品有效解决了水库、堤坝等部位的排水问题,提高了水利设施的抗灾能力;在建筑领域,公司的产品为地下室、车库等部位…

泰安市永强网业有限公司:渗排水塑料盲沟异性塑料盲沟hdpe塑料盲沟排水塑料盲沟圆形塑料盲沟专业制造,行业应用广泛(泰安市永强网业公司地址)

自动剔除报警滚筒检重秤优点(自动报警是什么意思?)

自动剔除报警滚筒检重秤是现代生产线中重要的质量控制设备,主要用于对产品进行自动称重、不合格品剔除和异常报警。该设备通过高精度传感器和智能控制系统,实现对产品重量的实时监测和自动分拣,广泛应用于食品、药品、化工…

自动剔除报警滚筒检重秤优点(自动报警是什么意思?)