spring boot定制定时任务(项目自启动)/每周报表生成/邮件发送

遇到了一个每周生成报表并发送至特定邮箱的需求,这个需求比较麻烦因为有三个难点:

1.如何将获取的数据生成excel文件,在这个项目中我使用的是POI,利用poi生成表格存储在特定的位置。

2.如何将表格作为附件发到指定邮箱,这里用的是javax.mail的包,需要注意的是要用附件就要用MimeBodyPart装载入message。

3.如何定时生成报表并发送呢?找了几种方法,有用Quartz做的,也有用线程池做的,但是最简洁的还是springboot自带的

@EnableScheduling    ←放在启动项

和@Scheduled(cron = "* * * * * *") ←放在方法体上面


这种方法无法适用于分布式服务,到了指定时间,各个实例都会触发。

需要写一个锁,或者是使用spring-cloud的知识来适配。

你可能感兴趣的:(项目经验)