Spring Boot 与 任务 (异步任务、定时任务、邮件任务)

Spring Boot 与 任务 (异步任务、定时任务、邮件任务)

异步任务

@Async//开启异步任务 告诉spring 这是一个异步方法
public void hello(){
	try{
		Thread.sleep(3000);
	}catch(InterruptedExcetion e){
		e.printStackTrace();
	}
	System.out,println("Hello world");
}
@EnableAsync//开启异步注解功能
@EnableRabbit//开启Rabbit监听功能
@SpringBootApplication
public class SpringbootRabbitApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootRabbitApplication.class, args);
    }

}

定时任务

两个注解 @EnbleSchedyling @Scheduled

public @interface Scheduled {
    String CRON_DISABLED = "-";

    String cron() default "";

    String zone() default "";

    long fixedDelay() default -1L;

    String fixedDelayString() default "";

    long fixedRate() default -1L;

    String fixedRateString() default "";

    long initialDelay() default -1L;

    String initialDelayString() default "";
}

建立方法 执行定时任务

    /**
     *      秒 分 时 日 月 周几
     *      * *  *  *  *  MON-SUN / 0-7   在周1 到 周6 每月 每天 没时 没分 每秒都调用  0 7 都是周日  1-6 星期1到6
     */
//    @Scheduled(cron = "* * * * * MON-SUN")
//    @Scheduled(cron = "0,1,2,3 * * * * MON-SUN")枚举
//    @Scheduled(cron = "0-3 * * * * MON-SUN")区间
//    @Scheduled(cron = "0/4 * * * * MON-SUN")步长 从0秒启动 每4秒执行一次
    public void ff1(){
        System.out.println("hello world");
    }

开启注解功能

@EnableScheduling//开启定时任务注解功能
@SpringBootApplication
public class SpringbootRabbitApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootRabbitApplication.class, args);
    }

}

cron表达式

邮件任务

导入依赖

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

配置

spring.mail.username=3132820261@qq.com
# 这里填写的是授权码 不是密码  注意服务要开启
spring.mail.password=
spring.mail.host=smtp.qq.com
#qq邮箱需要安全验证
spring.mail.properties.mail.smtp.ssl.enabke=true

SpringBoot 自动配置 会生成JavaMailSenderImpl 类 发送邮件任务 相关的配置文件在MailProperties 类中

    @Autowired
    JavaMailSenderImpl javaMailSender;
    @Test
    public void senderMail(){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//简单邮件
        simpleMailMessage.setSubject("加油 打工人");//设置标题
        simpleMailMessage.setText("努力学习 不要放弃");//设置正文
        simpleMailMessage.setTo("2632700902@qq.com");//发给谁
        simpleMailMessage.setFrom("3132820261@qq.com");//谁发的
        javaMailSender.send(simpleMailMessage);
    }
 public void senderMail2() throws  Exception{
        MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage,true);//注意设置为true 支持附件上传
        mimeMessageHelper.setSubject("加油 打工人");
        mimeMessageHelper.setText("<h1>努力学习 不要放弃</h1>",true);//设置支持html
        mimeMessageHelper.setTo("2632700902@qq.com");
        mimeMessageHelper.setFrom("3132820261@qq.com");
        mimeMessageHelper.addAttachment("1.jpg",new File("C:\\Users\\31328\\Desktop\\tmnp\\img\\1.jpg"));//上传文件
        javaMailSender.send(mimeMailMessage);
    }
posted @ 2021-07-19 17:35  zhiy  阅读(52)  评论(0)    收藏  举报