springboot中的任務(非同步任務--定時任務--郵件任務)

來源:互聯網
上載者:User

標籤:dep   tput   lin   tst   exce   hot   build   width   relative   

1.pom檔案

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.zy</groupId>    <artifactId>spring-boot-task-demo</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>spring-boot-task-demo</name>    <description>Demo project for Spring Boot</description>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.0.4.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>        <java.version>1.8</java.version>    </properties>    <dependencies>        <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>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

2.啟動類

package com.zy;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.scheduling.annotation.EnableAsync;@SpringBootApplication// 支援非同步線程,需要非同步呼叫的service層方法上面加上@Async註解,二者聯合,可起作用@EnableAsync
//開啟基於註解的定時任務
@EnableScheduling
public class SpringBootTaskDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringBootTaskDemoApplication.class, args); } }

3.controller測試類別

package com.zy.controller;import com.zy.service.AsyncServiceImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RequestMapping("/task/")@RestControllerpublic class AsyncController {    @Autowired    private AsyncServiceImpl asyncService;    @RequestMapping("/async")    public Object async(String name){        return name;    }}

4.service層

4.1非同步任務實作類別

 

package com.zy.service;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;@Service("asyncService")public class AsyncServiceImpl {    @Async    public String async(String name){        try {            Thread.sleep(5000);        } catch (InterruptedException e) {            e.printStackTrace();        }        return "good morning:" + name;    }}

4.2定時任務實作類別

package com.zy.service;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Service;@Servicepublic class ScheduledServiceImpl {    /**     * second(秒), minute(分), hour(時), day of month(日), month(月), day of week(周幾).     * 0 * * * * MON-FRI     *  【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-4 ? * 1#1】每個月的第一個周一淩晨2點到4點期間,每個整點都執行一次;     */    // @Scheduled(cron = "0 * * * * MON-SAT")    //@Scheduled(cron = "0,1,2,3,4 * * * * MON-SAT")    // @Scheduled(cron = "0-4 * * * * MON-SAT")    @Scheduled(cron = "0/50 * * * * MON-SAT")  //每50秒執行一次    public void saySchedule(){        System.out.println("saySchedule");    }}

 

springboot中的任務(非同步任務--定時任務--郵件任務)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.