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

猜你喜欢

『董洁』穿新中式火了,有人觉得老气她偏要穿出通勤感(『董洁』服装搭配)

她穿了一件黑底金丝马甲,通常这种衣服很容易显得沉闷沉重,但『董洁』却巧妙地穿出了不同的韵味。现如今,许多人一提到新中式,脑海中往往浮现出繁复的工艺,但『董洁』走的其实是简约路线,她用精致的材料和合适的剪裁,重新演绎了…

『董洁』穿新中式火了,有人觉得老气她偏要穿出通勤感(『董洁』服装搭配)

SUNNEX新力士牌-罗马自助汤炉-不显示不加热维修注意事项(力士新包装)

部分后厨人员操作不规范:清洁时用高压水枪直冲设备、用力按压开关面板,导致电路线路松动、电路板变形;搬运汤炉时未轻拿轻放,剧烈震动造成主板焊点脱落、传感线拉扯断裂;非专业维修时,盲目撬动电路部件、乱接线路,会…

SUNNEX新力士牌-罗马自助汤炉-不显示不加热维修注意事项(力士新包装)

天然母贝!18k 黄金,8.5-9mm 日本 akoya 海水珍珠,正圆,极光,基本无瑕(天然母贝珠是什么)

天然母贝!18k 黄金,8.5-9mm 日本 akoya 海水珍珠,正圆,极光,基本无暇!…

天然母贝!18k 黄金,8.5-9mm 日本 akoya 海水珍珠,正圆,极光,基本无瑕(天然母贝珠是什么)

光明村的新媳妇称会介绍朋友嫁过来 光明村的户口说出去大家都羡慕(光明村的新媳妇叫什么)

1月29日,刘强东为老家宿迁来龙镇光明村村民们送的年货开始发放。一对“00后”新婚夫妇在现场领到了今年的年货。小裴介绍,自己是去年10月嫁到光明村的,知道老公户口是光明村的时候很惊讶,之前都是在网上看到他们发年货,现在居然也拿到了。”在今

光明村的新媳妇称会介绍朋友嫁过来 光明村的户口说出去大家都羡慕(光明村的新媳妇叫什么)

奔驰车主想体验无线🛜CarPlay和HiCar?这些热门车型都支持吗?(奔驰要求)

奔驰E级、C级、B级、GLE、GLC等车型是否支持苹果无线🛜CarPlay与HiCar呢?本文为您详解如何轻松升级车载娱乐系统,提升驾驶体验。从适配性、预算考量、配置优化、常见误区等多角度解析,帮您找到适合自己的选择方案。

奔驰车主想体验无线🛜CarPlay和HiCar?这些热门车型都支持吗?(奔驰要求)