Springboot幾種任務(wù)的整合方法
這篇文章主要介紹了Springboot幾種任務(wù)的整合方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
一 異步任務(wù)
啟動(dòng)類
@MapperScan("com.topcheer.*.*.dao") @SpringBootApplication @EnableCaching @EnableRabbit @EnableAsync public class Oss6Application { public static void main(String[] args) { SpringApplication.run(Oss6Application.class, args); } }
Controller層
/** * @author WGR * @create 2019/10/12 -- 21:53 */ @RestController public class AsynController { @Autowired AsynService asyncService; @GetMapping("/hello") public String hello(){ asyncService.hello(); return "success"; } }
Service層
/** * @author WGR * @create 2019/10/12 -- 21:52 */ @Service public class AsynService { //告訴Spring這是一個(gè)異步方法 @Async public void hello() { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("處理數(shù)據(jù)中..."); } }
測(cè)試結(jié)果:
頁(yè)面直接顯示success,控制臺(tái)過(guò)3秒顯示處理數(shù)據(jù)中...
二 定時(shí)任務(wù)
此處的定時(shí),標(biāo)注在方法上+注解,假如想修改生成環(huán)境的時(shí)間,不是很靈活,后面補(bǔ)充Quartz+boot,采用數(shù)據(jù)庫(kù)配置和反射的原理。
注:java的cron表達(dá)式和Linux的不太一樣,請(qǐng)注意,java為6位,linux為5位。
啟動(dòng)類
@SpringBootApplication @EnableScheduling public class Oss6Application { public static void main(String[] args) { SpringApplication.run(Oss6Application.class, args); } }
服務(wù)類
@Service public class ScheduledService { /** * second(秒), minute(分), hour(時(shí)), day of month(日), month(月), day of week(周幾). * 0 * * * * MON-FRI * 【0 0/5 14,18 * * ?】 每天14點(diǎn)整,和18點(diǎn)整,每隔5分鐘執(zhí)行一次 * 【0 15 10 ? * 1-6】 每個(gè)月的周一至周六10:15分執(zhí)行一次 * 【0 0 2 ? * 6L】每個(gè)月的最后一個(gè)周六凌晨2點(diǎn)執(zhí)行一次 * 【0 0 2 LW * ?】每個(gè)月的最后一個(gè)工作日凌晨2點(diǎn)執(zhí)行一次 * 【0 0 2-4 ? * 1#1】每個(gè)月的第一個(gè)周一凌晨2點(diǎn)到4點(diǎn)期間,每個(gè)整點(diǎn)都執(zhí)行一次; */ // @Scheduled(cron = "0 * * * * MON-SAT") //@Scheduled(cron = "0,1,2,3,4 * * * * MON-SAT") // @Scheduled(cron = "0-4 * * * * MON-SAT") @Scheduled(cron = "0/4 * * * * MON-SAT") //每4秒執(zhí)行一次 public void hello(){ System.out.println("hello ... "); } }
三 郵件任務(wù)
pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <scope>test</scope> </dependency>
配置文件
spring: mail: username: *********** password: ********* (這是qq郵箱的授權(quán)碼) host: smtp.qq.com spring.mail.properties.mail.smtp.ssl.enable=true
測(cè)試類
@Autowired(required = false) JavaMailSenderImpl mailSender; @Test public void contextLoads() { SimpleMailMessage message = new SimpleMailMessage(); //郵件設(shè)置 message.setSubject("通知-今晚開(kāi)會(huì)"); message.setText("今晚7:30開(kāi)會(huì)"); message.setTo("**************"); message.setFrom("**************"); mailSender.send(message); } @Test public void test02() throws Exception{ //1、創(chuàng)建一個(gè)復(fù)雜的消息郵件 MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); //郵件設(shè)置 helper.setSubject("測(cè)試"); helper.setText("<b style='color:red'>今天 7:30 開(kāi)會(huì)</b>",true); helper.setTo("***************"); helper.setFrom("**************"); //上傳文件 helper.addAttachment("nginx.md",new File("C:\\Users\\asus\\Desktop\\nginx.md")); mailSender.send(mimeMessage); }
結(jié)果:
總結(jié)
簡(jiǎn)單的介紹了幾個(gè)任務(wù),后面有時(shí)間會(huì)詳細(xì)說(shuō)明在項(xiàng)目實(shí)戰(zhàn)的開(kāi)發(fā)應(yīng)用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- spring boot整合quartz實(shí)現(xiàn)多個(gè)定時(shí)任務(wù)的方法
- springboot整合Quartz實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法
- 詳解SpringBoot開(kāi)發(fā)案例之整合定時(shí)任務(wù)(Scheduled)
- springboot整合quartz實(shí)現(xiàn)定時(shí)任務(wù)示例
- SpringBoot定時(shí)任務(wù)兩種(Spring Schedule 與 Quartz 整合 )實(shí)現(xiàn)方法
- springboot schedule 解決定時(shí)任務(wù)不執(zhí)行的問(wèn)題
- SpringBoot實(shí)現(xiàn)動(dòng)態(tài)定時(shí)任務(wù)
相關(guān)文章
Java?jar打包成exe應(yīng)用程序的詳細(xì)步驟
本文主要介紹了Java?jar打包成exe應(yīng)用程序的詳細(xì)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Java?集合框架掌握?Map?和?Set?的使用(內(nèi)含哈希表源碼解讀及面試??碱})
這篇文章主要介紹了Java?集合框架掌握?Map?和?Set?的使用并含有內(nèi)含哈希表源碼解讀及面試??碱},?Map?和?Set?是一種適合動(dòng)態(tài)查找的集合容器或者數(shù)據(jù)結(jié)構(gòu)下面文章詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2021-12-12詳解Spring Boot 2.0.2+Ajax解決跨域請(qǐng)求的問(wèn)題
這篇文章主要介紹了詳解Spring Boot 2.0.2+Ajax解決跨域請(qǐng)求的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Java動(dòng)態(tài)規(guī)劃之丑數(shù)問(wèn)題實(shí)例講解
這篇文章主要介紹了Java動(dòng)態(tài)規(guī)劃之丑數(shù)問(wèn)題實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-09-09JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解
這篇文章主要介紹了JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09SpringCloud使用Zookeeper作為配置中心的示例
這篇文章主要介紹了SpringCloud使用Zookeeper作為配置中心的示例,幫助大家更好的理解和學(xué)習(xí)使用SpringCloud,感興趣的朋友可以了解下2021-04-04