SpringBoot 任务

SpringBoot任务

1、异步任务
  • 启动类开启异步注解功能: @EnableAsync

  • 使用注解 @Async,告诉 spring 这是一个异步方法

2、邮件任务

Java邮件发送代码:https://github.com/becauseoflife/CodeDemo/tree/main/JavaDemo/JavaSeEmailDemo

JavaWeb邮件发送代码: https://github.com/becauseoflife/CodeDemo/tree/main/JavaDemo/JavaSeEmailDemo

引入启动器:

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

进行配置:

spring.mail.host=smtp.qq.com
spring.mail.username=1752196851@qq.com
spring.mail.password= QQ邮箱->设置->开启服务:POP3/SMTP服务->获取授权码
# 开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true

进行测试:

@Autowired
JavaMailSenderImpl javaMailSender;

@Test
void contextLoads() {
    // 一个简单的邮件发送
    SimpleMailMessage message = new SimpleMailMessage();

    message.setSubject("面包你好");
    message.setText("Java系列课程");

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

    javaMailSender.send(message);
}
    @Test
    void contextLoads2() throws MessagingException {
        // 一个复杂的邮件发送
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        // 组装
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        
        helper.setSubject("面包你好");
        helper.setText("<h2 style='color:blue'>面包你好</h2>", true);
        
        // 附件
        helper.addAttachment("1.jpg", new File("D:\\Desktop\\面包\\图片\\test11.png"));

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

        javaMailSender.send(mimeMessage);
    }
3、定时任务
关键:
    TaskExecutor  任务执行者
    TaskScheduler 任务调度者
    @EnableScheduling
    @Scheduled(cron="表达式")

启动类,开启定时功能的注解: @EnableScheduling

Cron表达式

Cron

计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 cron 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的任务。

crontab文件的格式:M H D m d cmd.

M: 分钟(0-59)。

H:小时(0-23)。

D:天(1-31)。

m: 月(1-12)。

d: 一星期内的天(0~7,0,7为星期天,6为星期六)。

cmd: 要执行的命令。

除了数字还有几个个特殊的符号就是"*"、"/“和”-"、",",代表所有的取值范围内的数字,"/“代表每的意思,”/5"表示每5个单位,"-“代表从某个数字到某个数字,”,"分开几个离散的数字。

如 :

 0 * * * * 0-7
秒 分 时 日 月 周几

Cron在线生成器

方法上使用 @Scheduled(cron="表达式") 注解,即可实现定时执行方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot任务调度可以通过在启动类上标注@EnableScheduling来开启。具体的步骤如下: 1. 在启动类上标注@EnableScheduling注解,以开启定时任务。例如: ```java @SpringBootApplication @EnableScheduling public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } } ``` 2. 在pom.xml文件中添加相关的依赖。例如,可以使用以下依赖: ```xml <!-- spring-boot-starter-web (spring-webmvc tomcat) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- xxl-job-core 版本号根据自己下载的版本修改 --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.1.1-SNAPSHOT</version> </dependency> ``` 3. 可以使用@ConfigurationProperties、@PropertySource等配置注解来配置相关依赖。例如,可以添加以下依赖: ```xml <!-- 配置依赖,可以使用@ConfigurationProperties、@PropertySource等配置注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>2.6.4</version> </dependency> ``` 通过以上步骤,你可以在SpringBoot中实现任务调度功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SpringBoot任务调度](https://blog.csdn.net/weixin_42150397/article/details/123503626)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [springboot的5种任务调度](https://blog.csdn.net/plpldog/article/details/120351267)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值