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异步不生效)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

安徽『金星』预应力申请锚板锥孔挤压强化用脱模剂专利,锥孔受到模具冲压后可实现快速脱模(『金星』预应力工程技术公司)

国家知识产权局信息显示,安徽『金星』预应力工程技术有限公司申请一项名为“锚板锥孔挤压强化用脱模剂及其制备方法与应用”的专利,公开号CN121379701A,申请日期为2025年11月。 声明:市场有风险,投资需谨…

安徽『金星』预应力申请锚板锥孔挤压强化用脱模剂专利,锥孔受到模具冲压后可实现快速脱模(『金星』预应力工程技术公司)

『林允』片场服速效救心丸,剧组回应加强健康保障(『林允』大片)

近日,人气演员『林允』在古装剧《归鸾》拍摄现场被发现服用速效救心丸的画面,引发了广泛的关注和讨论。尤其是在冬季拍摄夏季场景时,演员们为了保持戏服的飘逸感,往往只能在单薄的衣物内贴上暖宝宝来御寒,这种极端的工作环境…

『林允』片场服速效救心丸,剧组回应加强健康保障(『林允』大片)

接档《小城大事》!视帝扛起大旗,终于有90后当主角🎭️的年代剧了(小城大家)

生命树》讲述的是90年代,女警白菊(『杨紫』饰)加入巡山队,和副县长多杰(『胡歌』饰)以及队员们一起共同打击盗猎行为,保护自然保护区。 剧中的男主角🎭️是许多警察的缩影,而『胡歌』将这一形象展现得淋漓尽致,令人期待…

接档《<strong>小城大事</strong>》!视帝扛起大旗,终于有90后当主角🎭️的年代剧了(小城大家)

如何挑选家用joinfit竞技壶铃健身器材打造翘臀效果?(如何挑选家用投影仪)

家用壶铃训练已经成为翘臀锻炼的重要方式之一。本文为你揭示如何挑选合适的家用壶铃健身器材,涵盖重量范围、把手舒适度、耐用性等要素。助你安全有效地达成健臀塑形目标。

如何挑选家用joinfit竞技壶铃健身器材打造翘臀效果?(如何挑选家用投影仪)

吴千语和老公在智利旅游!穿性感泳装跳水不怕冷,脸上雀斑成亮点

吴千语在配文里简洁地写了四个字:暴走暴晒,但从她的穿着和表情来看,大家能明显感觉到这次徒步的强度有多大:她裹着黑色运动服,帽子和墨镜🕶️几乎遮住了整张脸,显然是在与当地毒辣的阳光硬抗。这画面反差大到让人惊叹:旁边…

吴千语和老公在智利旅游!穿性感泳装跳水不怕冷,脸上雀斑成亮点