写点什么

微服务架构中的任务调度:在 SpringBoot 框架中使用异步任务,定时任务和邮件任务

发布于: 2021 年 04 月 24 日
微服务架构中的任务调度:在SpringBoot框架中使用异步任务,定时任务和邮件任务

异步任务

@EnableAsync

  • 在类上注解,开启异步任务功能

@Async

  • 在方法上注解,标记异步方法

定时任务

  • Spring 提供了异步执行任务调度的方式

  • Spring 提供了 TaskExecutor,TaskScheduler 接口

  • 两个注解:

  • @EnableScheduling:在类上注解,开启定时任务功能

  • @Scheduled: 在方法上注解,标记定时任务方法


second(秒),minute(分),hour(时),day of month(日),month(月),day of week(周几)0 * * * * MON-FRI@Scheduled(cron="0 * * * * MON-FRI")@Scheduled(cron="1,2,3 * * * * MON-FRI")-枚举: ,@Scheduled(cron="0-15 * * * * MON-FRI")-区间: -@Scheduled(cron="0/4 * * * * MON-FRI")-步长: / 从0开始,每4秒启动一次cron="0 0/5 14,18 * * ?"  每天14点整和18点整,每隔5分钟执行一次cron="0 15 10 ? * 1-6"      每个月的周一至周六10:15分执行一次cron="0 0 2 ? * 6L"     每个月的最后一个周六2点执行一次cron="0 0 2 LW * ?"      每个月的最后一个工作日2点执行一次cron="0 0 2-4 ? * 1#1"     每个月的第一个周一2点到4点,每个整点执行一次
复制代码


邮件任务

  • 邮件发送引入 spring-boot-starter-mail 依赖

  • SpringBoot 自动配置 MailSenderAutoConfiguration

  • 定义 MailProperties 内容,配置在 application.yml 中


spring.mail.username=spring.mail.password=(授权码)spring.mail.host=(smtp服务器地址)spring.mail.properties.mail.smtp.ssl.enable=true
复制代码


  • 自动装配 JavaMailSender


SimpleMailMessage mes=new SimpleMailMessage();
创建一个复杂消息邮件MimeMessage mimeMes=mailSender.createMimeMessage();MimeMessageHelper mimeHelper=new MimeMessageHelper(mimeMes,true(上传文件))mimeHelper.addAttachment("fileName",new File("pathName"));
复制代码


发布于: 2021 年 04 月 24 日阅读数: 15
用户头像

一位攻城狮的自我修养 2021.04.06 加入

分享技术干货,面试题和攻城狮故事。 你的关注支持是我持续进步的最大动力! https://github.com/ChovaVea

评论

发布
暂无评论
微服务架构中的任务调度:在SpringBoot框架中使用异步任务,定时任务和邮件任务