博客
关于我
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/

你可能感兴趣的文章
Mysql 中的日期时间字符串查询
查看>>
mysql 中索引的问题
查看>>
MySQL 中锁的面试题总结
查看>>
MySQL 中随机抽样:order by rand limit 的替代方案
查看>>
MySQL 为什么需要两阶段提交?
查看>>
mysql 为某个字段的值加前缀、去掉前缀
查看>>
mysql 主从
查看>>
mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
查看>>
mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
查看>>
mysql 主从关系切换
查看>>
MYSQL 主从同步文档的大坑
查看>>
mysql 主键重复则覆盖_数据库主键不能重复
查看>>
Mysql 事务知识点与优化建议
查看>>
Mysql 优化 or
查看>>
mysql 优化器 key_mysql – 选择*和查询优化器
查看>>
MySQL 优化:Explain 执行计划详解
查看>>
Mysql 会导致锁表的语法
查看>>
mysql 使用sql文件恢复数据库
查看>>
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>