springboot中的任务处理

一.异步任务
在开发中有时用户提交的数据,后台需要一定时间才能做出响应,此时用户在前台也不能在等待中,此时就应该先开启异步请求处理,利用多线程,先给前台反馈,后台另一线程去处理数据。

1.创建异步处理请求

package com.springboot.assigment.service;

import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

/**

  • @author panglili
  • @create 2022-07-12-8:19
    */

//异步请求注解,表示此类开启异步请求
@Async
@Service
public class AsyncService {
public void Asycn(){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“数据处理中……”);
}
}
此程序中,后台需要三秒等待才能处理好请求。

2.controller调用异步业务请求的方法

package com.springboot.assigment.controller;

import com.springboot.assigment.service.AsyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**

  • @author panglili

  • @create 2022-07-12-8:23
    */
    @Controller
    public class AsycnController {

    @Autowired
    AsyncService asyncService;

    @RequestMapping(“/asycn”)
    @ResponseBody
    public String asycn(){
    asyncService.Asycn();
    return “ok”;
    }
    }
    在执行完对异步业务的调用之后才会返回给前台一个ok!

3.主程序开启异步处理,创建多线程池!

@EnableAsync
//开启异步处理,底部开启了一个线程池存放异步请求的处理
总结:实现异步处理只需要加上两个注解,在异步请求服务上加上@Async在主程序上加上@EnableAsync 即可!

二.邮件任务
1.导包

org.springframework.boot spring-boot-starter-mail 2.配置文件properties

spring.mail.username=2558008051@qq.com
spring.mail.password=lswpwkcyalcsdhjc

#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true

spring.mail.host=smtp.qq.com

spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=false
spring.mail.properties.mail.smtp.starttls.required=false
3.邮件发送方法

class SpringbootApplicationTests {

@Autowired
JavaMailSender mailSender;
@Test
void contextLoads() {

    SimpleMailMessage message = new SimpleMailMessage();
    message.setSubject("你好");
    message.setText("这是发送内容~");
    message.setTo("2558008051@qq.com");
    message.setFrom("2558008051@qq.com");
    mailSender.send(message);

}

}
简单的邮件发送功能完成!

三.定时执行任务
1.写一个需要定时执行的任务

package com.springboot.assigment.service;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**

  • @author panglili

  • @create 2022-07-12-10:00
    */
    @Service
    public class ScheduledService {

    //cron表达式定义时间
    //注解定时任务的时间
    @Scheduled(cron=“0 15 10 * * ?”)
    public void hello(){
    System.out.println(“hello,你被执行了~”);
    }
    }
    2.主程序开启定时调用

@EnableScheduling//开启定时功能支持
深圳网站建设www.sz886.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值