SpringBoot-任务

SpringBoot整合任务

1、异步任务:

在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在 处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring3.x之后,就已经内置了@Async来完 美解决这个问题。

两个注解: @EnableAysnc、@Aysnc

@EnableAsync  //开启异步注解功能。

@Async  //告诉Spring这是一个异步方法

@Service
public class AsyncService {
    @Async
    public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("处理数据中...");
    }
}

2、定时任务:

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前 一天的日志信息。Spring为我们提供了异步执行任务调度的方式,提供 TaskExecutor 、TaskScheduler 接口。

两个注解:@EnableScheduling、@Scheduled

@EnableScheduling //开启基于注解的定时任务

@Scheduled //执行定时任务

@Service
public class ScheduledService {

    @Scheduled(cron = "0/4 * * * * MON-SAT")  //每4秒执行一次
    public void hello(){
        System.out.println("hello ... ");
    }
}

cron表达式:

更多例子如下:

0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点 
"0 0 12 * * ?" 每天中午12点触发 
"0 15 10 ? * *" 每天上午10:15触发 
"0 15 10 * * ?" 每天上午10:15触发 
"0 15 10 * * ? *" 每天上午10:15触发 
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发 
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 
"0 15 10 15 * ?" 每月15日上午10:15触发 
"0 15 10 L * ?" 每月最后一日的上午10:15触发 
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 

3、邮件任务:

3.1、引入依赖

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

3.2、配置服务:

spring.mail.username=******
spring.mail.password=******
spring.mail.host=******

3.3、发送邮件:

@Autowired
JavaMailSenderImpl mailSender;

 

public void sendSimpleMsg() {
        SimpleMailMessage message = new SimpleMailMessage();
        //邮件设置
        message.setSubject("通知-今晚开会");
        message.setText("今晚7:30开会");

        message.setTo("17512080612@163.com");
        message.setFrom("******");

        mailSender.send(message);
}

 

public void sendMimeMsg() throws  Exception{
        //1、创建一个复杂的消息邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

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

        helper.setTo("17512080612@163.com");
        helper.setFrom("*****");

        //上传文件
        helper.addAttachment("1.jpg",new File("C:\\Users\\lfy\\Pictures\\Saved Pictures\\1.jpg"));
        helper.addAttachment("2.jpg",new File("C:\\Users\\lfy\\Pictures\\Saved Pictures\\2.jpg"));

        mailSender.send(mimeMessage);

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
elasticjob-springboot-start是一个用于在Spring Boot应用集成ElasticJob分布式任务调度框架的开源项目。该项目提供了简单易用的方式,方便开发者在Spring Boot应用使用ElasticJob来进行任务调度。 ElasticJob是一个分布式任务调度框架,它基于Quartz和Zookeeper,并提供了分布式的任务调度能力。使用ElasticJob可以方便地进行任务的创建、调度和管理,同时支持任务的弹性扩缩容、故障转移和分片策略。 elasticjob-springboot-start项目简化了在Spring Boot应用集成ElasticJob的步骤。它提供了自动化的配置和初始化过程,开发者只需要引入相应的依赖,配置相关属性即可使用ElasticJob。 使用elasticjob-springboot-start,开发者可以通过几个简单的步骤即可实现任务的调度。首先,在Spring Boot项目添加依赖,然后根据自己的需求配置相关属性,比如Zookeeper地址、任务配置等。接下来,开发者可以通过注解或者编程的方式创建任务,并配置相应的调度策略和任务执行逻辑。最后,启动Spring Boot应用,任务就会按照设定的策略开始执行。 该项目的便利性和易用性使得开发者无需过多了解ElasticJob的细节,就能够在Spring Boot应用快速集成和使用分布式任务调度功能。同时,该项目还提供了丰富的文档和示例,方便开发者学习和参考。 总结来说,elasticjob-springboot-start是一个在Spring Boot应用集成ElasticJob分布式任务调度框架的工具,它简化了集成过程,提供了简单易用的方式来实现任务调度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值