微服务架构中的任务调度:在 SpringBoot 框架中使用异步任务,定时任务和邮件任务
Posted 攻城狮Chova
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务架构中的任务调度:在 SpringBoot 框架中使用异步任务,定时任务和邮件任务相关的知识,希望对你有一定的参考价值。
异步任务
@EnableAsync
在类上注解,开启异步任务功能
@Async
在方法上注解,标记异步方法
定时任务
- Spring提供了异步执行任务调度的方式
- Spring提供了TaskExecutor,TaskScheduler接口
两个注解:
- @EnableScheduling:在类上注解,开启定时任务功能
- @Scheduled: 在方法上注解,标记定时任务方法
- 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点,每个整点执行一次
- MON-FRI
- cron表达式:
字段 | 允许值 | 允许特殊字符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
小时 | 0-23 | , - * / |
日期 | 1-31 | , - * ? / L W C |
月份 | 1-12 | , - * / |
星期 | 0-7或SUN-SAT,0和7是SUN | , - * / |
特殊字符 | 含义 |
---|---|
, | 枚举 |
- | 区间 |
* | 任意 |
/ | 步长 |
? | 日和星期的冲突匹配 |
L | 最后 |
w | 工作日 |
C | 与calendar联系后计算过的值 |
# | 星期: 4#2-第2个星期三 |
邮件任务
- 邮件发送引入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"));
以上是关于微服务架构中的任务调度:在 SpringBoot 框架中使用异步任务,定时任务和邮件任务的主要内容,如果未能解决你的问题,请参考以下文章