博客
关于我
SpringBoot-Web-异步、定时、邮件任务
阅读量:272 次
发布时间:2019-03-01

本文共 2985 字,大约阅读时间需要 9 分钟。

异步任务

按照调用顺序执行任务

在这里插入图片描述

开启异步任务

@Async 在异步任务上使用异步注解

@EnableAsync 在主程序上开启异步注解功能
在这里插入图片描述

定时任务

在要定时执行的的方法上通过@Scheduled,写好corn表达式,指定定时任务执行的频率

  • 不要其他方式的调用,写好corn表达式,开启注解,启动主程序就可以了
@Servicepublic class MyService {       //秒   分   时     日   月   周几    @Scheduled(cron = "0 12 15 * * 0-7")    public void hello(){           System.out.println("定时任务");    }}
  • 在主程序开启定时任务功能
//开启基于注解的定时任务@EnableScheduling @SpringBootApplicationpublic class Springboot05Application {       public static void main(String[] args) {           SpringApplication.run(Springboot05Application.class, args);    }}

常用的corn表达式

(1)0/2 * * * * ?   表示每2秒 执行任务(1)0 0/2 * * * ?   表示每2分钟 执行任务(1)0 0 2 1 * ?   表示在每月的1日的凌晨2点调整任务(2)0 15 10 ? * MON-FRI   表示周一到周五每天上午10:15执行作业(3)0 15 10 ? 6L 2002-2006   表示2002-2006年的每个月的最后一个星期五上午10:15执行作(4)0 0 10,14,16 * * ?   每天上午10点,下午2点,4点(5)0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时(6)0 0 12 ? * WED   表示每个星期三中午12点(7)0 0 12 * * ?   每天中午12点触发(8)0 15 10 ? * *   每天上午10:15触发(9)0 15 10 * * ?     每天上午10:15触发(10)0 15 10 * * ?   每天上午10:15触发(11)0 15 10 * * ? 2005   2005年的每天上午10:15触发(12)0 * 14 * * ?     在每天下午2点到下午2:59期间的每1分钟触发(13)0 0/5 14 * * ?   在每天下午2点到下午2:55期间的每5分钟触发(14)0 0/5 14,18 * * ?     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发(15)0 0-5 14 * * ?   在每天下午2点到下午2:05期间的每1分钟触发(16)0 10,44 14 ? 3 WED   每年三月的星期三的下午2:10和2:44触发(17)0 15 10 ? * MON-FRI   周一至周五的上午10:15触发(18)0 15 10 15 * ?   每月15日上午10:15触发(19)0 15 10 L * ?   每月最后一日的上午10:15触发(20)0 15 10 ? * 6L   每月的最后一个星期五上午10:15触发(21)0 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最后一个星期五上午10:15触发(22)0 15 10 ? * 6#3   每月的第三个星期五上午10:15触发

链接: .

邮件任务

发送一个简单邮件

  1. 导入依赖
org.springframework.boot
spring-boot-starter-mail
  1. 编写配置文件 application.properties
spring.mail.username=2500813866@qq.comspring.mail.password=kxhfocyyrnmuecif#qq就qq.com#网易就163.com#新浪就sina.comspring.mail.host=smtp.qq.com# 如果使用qq,还需要开启加密验证,其他的邮箱不需要# 键值对 mail.smtp.ssl.enable:truespring.mail.properties.mail.smtp.ssl.enable=true
  1. 注入一个邮箱发送实现类(不需要自己编写),添加邮箱标、内容和发送人
class MyMail {       @Resource    JavaMailSenderImpl mailSender;    @Test    void sendmail() {           //kxhfocyyrnmuecif        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();        simpleMailMessage.setSubject("你好");        simpleMailMessage.setText("这是一封邮件的内容");        simpleMailMessage.setTo("2440545145@qq.com");        simpleMailMessage.setFrom("2500813866@qq.com");        mailSender.send(simpleMailMessage);    }}

在这里插入图片描述

发送一个复杂邮件(携带附件)

  • 基于简单邮件的1和2不用更改
@Test    void sendMail() throws MessagingException {           MimeMessage mimeMessage = mailSender.createMimeMessage();        //组装        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);        //正文        helper.setSubject("这是一封复杂的邮件");        helper.setText("

你猜我是什么颜色

",true); //附件 helper.addAttachment("1.jpg",new File("C:\\Users\\Desktop\\clipboard.png")); //目的邮箱和发送邮箱 helper.setTo("2440545145@qq.com"); helper.setFrom("2500813866@qq.com"); mailSender.send(mimeMessage); }

在这里插入图片描述

  • 可以把复杂邮件的方法封装成一个工具类

转载地址:http://gffa.baihongyu.com/

你可能感兴趣的文章
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>
Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
查看>>
mysql_real_connect 参数注意
查看>>
mysql_secure_installation初始化数据库报Access denied
查看>>
MySQL_西安11月销售昨日未上架的产品_20161212
查看>>
Mysql——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>
MySQL、HBase 和 Elasticsearch:特点与区别详解
查看>>
MySQL、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>