springboot任务

异步任务

主配置类上添加:@EnableAsync // 开启异步任务

其他方法调用@Async标注的方法,当此标注的方法阻塞时不影响调用它的方法继续向下继续续执行。

@Service
public class TaskService {

    // 异步任务:当此方法在他处被调用时,不用等到此异步方法运行结束,他处方法可继续向下运行。
    @Async
    public void async() throws InterruptedException {
        System.out.println("沉睡开始...");
        Thread.sleep(3000);
        System.out.println("沉睡结束...");
    }
}

定时任务

主配置类上添加注解:@EnableScheduling // 开启定时任务

定时执行的方法标注注解:@Scheduled

@Component// 扫描到容器
public class CronService {

    /**
     * 秒 分 时 日 月 day of week
     * , 枚举
     * / 步长 0/5 从0开始,每隔5(?)时间执行一次
     * - 区间
     * 0和7 都表示周日
     * 1-6 周一到周六
     * * 任意
     */
    @Scheduled(cron = "0/5 * * * * MON-SUN")
    public void cron(){
        System.out.println("定时任务.");
    }
}

邮件任务

引入场景启动器

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

application.properties添加配置 

#发送邮件的邮箱
spring.mail.username=3270297043@qq.com
#邮件厂商设置自动生成的
spring.mail.password=nwcsqhhdfkerciba
spring.mail.host=smtp.qq.com
#安全访问
spring.mail.properties.mail.smtp.ssl.enable=true

发送邮件

@Controller
public class TaskController {

    @Autowired
    TaskService taskService;

    @Autowired
    JavaMailSenderImpl javaMailSender;

    @GetMapping("/hello")
    @ResponseBody
    public Object testAsync() throws InterruptedException, MessagingException {
        HashMap<String, Object> stringObjectHashMap = new HashMap<>();
        stringObjectHashMap.put("name","张珊");
        stringObjectHashMap.put("gender","女");
        JSONObject jsonObject = JSONObject.fromObject(stringObjectHashMap);
        taskService.async();
        // 发送普通文本邮件
//        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
//        simpleMailMessage.setSubject("这是任务邮件主题");
//        simpleMailMessage.setText("来自定时任务的邮件");
//        simpleMailMessage.setTo("940389723@qq.com");
//        simpleMailMessage.setFrom("3270297043@qq.com");
//        javaMailSender.send(simpleMailMessage);

        // 发送多媒体邮件
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        mimeMessageHelper.setSubject("这是多媒体邮件");
        mimeMessageHelper.setText("明天<b style='color:red;'>7点</b>开会!",true);
        mimeMessageHelper.addAttachment("材料5.jpg",new File("F:\\Desktop\\材料5.jpg"));
        mimeMessageHelper.addAttachment("材料4.jpg",new File("F:\\Desktop\\材料4.jpg"));
        mimeMessageHelper.setTo("940389723@qq.com");
        mimeMessageHelper.setFrom("3270297043@qq.com");
        javaMailSender.send(mimeMessage);
        return jsonObject;
    }

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值