Spring Boot之任务


任务

异步任务

@Async介绍

在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

使用方法

在启动类上添加@EnableAsync注解

然后在需要异步执行的方法上使用@Async注解即可。

定时任务

有些任务需要定时执行,如日志记录,清理缓存。。。所以需要定时任务。

@Scheduled(cron=“”)

A cron-like expression, extending the usual UN*X definition to include triggers
on the second as well as minute, hour, day of month, month and day of week.

举例

second minute, hour, day of month, month,day of week.

* * * * * *详情看下面的介绍

使用方法

在启动类上添加@EnableScheduling注解

然后在方法上添加@Scheduled()

cron表达式介绍

一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。

按顺序依次为

  • 秒(0~59)

  •   分钟(0~59)

  •   小时(0~23)

  •   天(月)(0~31,但是你需要考虑你月的天数)

  •   月(0~11)

  •   天(星期)(0~7 0,1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)

  • / 代表步长

  • -代表区间

  • ? 在周和天冲突的时候使用

  • *代表所有

  • L代表最后

  • W代表工作日

  • C代表和Calendar类计算后的值

  • #代表第几个 4#2代表第四个星期2

字段 允许值 允许的特殊字符
0-59 , - * /
0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /

邮件任务

1.添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.修改配置文件

spring:
  mail:
    username: anin6@163.com
    password: 123
    host: smtp.163.com

3.测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestSendMail {
    @Autowired
    private JavaMailSenderImpl javaMailSender;

    @Test
    public void sendEmail(){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom("anbu66@163.com");
        simpleMailMessage.setTo("976850@qq.com");
        simpleMailMessage.setText("xxxxx");
        simpleMailMessage.setSubject("今天的结果第三个");
        simpleMailMessage.setSentDate(new Date(System.currentTimeMillis()));
        javaMailSender.send(simpleMailMessage);
        System.out.println("发送成功");

    }
    //发送带附件的邮件
    
     @Test
    public void testSendConfMail()throws Exception{
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();

        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
        mimeMessageHelper.setFrom("anbingxu666@163.com");
        mimeMessageHelper.setTo("976835150@qq.com");
        mimeMessageHelper.setText("xxxxxx");
        mimeMessageHelper.setSubject("今天的结果第三个带附件");
        mimeMessageHelper.setSentDate(new Date(System.currentTimeMillis()));
        mimeMessageHelper.addAttachment("hello",new File("/Users/bxan/Desktop/hello"));
        javaMailSender.send(mimeMessage);
        System.out.println("发送成功");

    }
}

文章作者: Bxan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bxan !
  目录