异步任务
@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点,每个整点执行一次
字段 |
允许值 |
允许特殊字符 |
秒 |
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
SimpleMailMessage mes=new SimpleMailMessage();
创建一个复杂消息邮件
MimeMessage mimeMes=mailSender.createMimeMessage();
MimeMessageHelper mimeHelper=new MimeMessageHelper(mimeMes,true(上传文件))
mimeHelper.addAttachment("fileName",new File("pathName"));