遇到了一个每周生成报表并发送至特定邮箱的需求,这个需求比较麻烦因为有三个难点:
1.如何将获取的数据生成excel文件,在这个项目中我使用的是POI,利用poi生成表格存储在特定的位置。
2.如何将表格作为附件发到指定邮箱,这里用的是javax.mail的包,需要注意的是要用附件就要用MimeBodyPart装载入message。
3.如何定时生成报表并发送呢?找了几种方法,有用Quartz做的,也有用线程池做的,但是最简洁的还是springboot自带的
@EnableScheduling ←放在启动项
和@Scheduled(cron = "* * * * * *") ←放在方法体上面
这种方法无法适用于分布式服务,到了指定时间,各个实例都会触发。
需要写一个锁,或者是使用spring-cloud的知识来适配。