前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot-任务

springboot-任务

作者头像
桑鱼
发布2020-03-17 18:14:08
3070
发布2020-03-17 18:14:08
举报
文章被收录于专栏:学习笔记持续记录中...

使用向导快速创建springboot,其他步骤可参考之前的文章

异步任务 @EnableAsync, @Async

代码语言:javascript
复制
@RestController
public class AsyncController {
    @Autowired
    AsyncService asyncService;
    @GetMapping("/hello")
    public String hello(){
        asyncService.hello();
        return "success";
    }
}
代码语言:javascript
复制
@EnableAsync // 开启异步注解 功能
@SpringBootApplication
public class MySpringBootTaskApplication {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootTaskApplication.class, args);
    }
}
代码语言:javascript
复制
@Service
public class AsyncService {
    /**
     * @Async 告诉spring这是一个异步方法 spring会开启一个线程池
     */
    @Async
    public void hello(){
        try{
            Thread.sleep(3000);
            System.out.println("end...");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("处理数据中...");
    }
}

定时任务 @EnableScheduling, @Scheduled

代码语言:javascript
复制
@Service
public class ScheduleService {
    /**
     * second,minute,hour,day of month(日),month,day of week(周几)
     * 0 0/5 14 18 * ?每天14点,和18点,每隔5分钟执行一次
     * 0 15 10 ? * 1-6 每隔月的周一到周六凌晨10:15分执行一次
     * 0 0 2 ? * 6L 每个月最后一个周六凌晨2点执行一次
     * 0 0 2 LW * ?每个月的最后一个工作日凌晨2点执行一次
     * 0 0 2 2-4 ? * 1#1 每个月的第一个周一凌晨2点到4点期间,每个整点都执行一次
     * 
     */
    @Scheduled(cron = "0/4 * * * * MON-SAT") //周一到周日 每4秒执行一次
    public void hello(){
        System.out.println("hello");
    }
}
代码语言:javascript
复制
@EnableScheduling // 开启基于注解的定时任务
@EnableAsync // 开启异步注解 功能
@SpringBootApplication
public class MySpringBootTaskApplication {

    public static void main(String[] args) {
        SpringApplication.run(MySpringBootTaskApplication.class, args);
    }
}
代码语言:javascript
复制
@RestController
public class AsyncController {
    @Autowired
    ScheduleService scheduleService;
    @GetMapping("/hello")
    public String hello(){
        scheduleService.hello();
        return "success";
    }
}

邮件任务

代码语言:javascript
复制
// pom.xml 注入依赖
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.1</version>
</dependency>

开启邮箱的POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?)

image.png

代码语言:javascript
复制
// application.properties
spring.mail.host=smtp.qq.com
spring.mail.username=935789914@qq.com
spring.mail.password=jmorsvzgrvfvbecb
spring.mail.properties.mail.smtp.ssl.enable=true
代码语言:javascript
复制
@SpringBootTest
class MySpringBootTaskApplicationTests {

    @Autowired
    JavaMailSenderImpl mailSender;

    @Test
    void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage();

        message.setSubject("通知");
        message.setText("今天是个特别的日子");

        message.setTo("935789914@qq.com");
        message.setFrom("935789914@qq.com");

        mailSender.send(message);
    }

    @Test
    void test02() throws MessagingException {
        //1. 创建一个复杂的消息邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);

        //2. 邮件设置
        helper.setSubject("通知");
        helper.setText("<p style=\"color:red;\">今天 7:30 开会</p>",true);

        helper.setTo("935789914@qq.com");
        helper.setFrom("935789914@qq.com");

        helper.addAttachment("sunset-above-mount-st-michael.jpg",new File("/Users/pengyapan/Downloads/PICTURE/sunset-above-mount-st-michael.jpg"));

        mailSender.send(mimeMessage);
    }

    @Test
    void test03(){
        System.out.println("\"color:red\"");
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档