1、springboot开箱即用,内置调度任务的使用。
建一个简单的springboot工程,pom.xml:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.8.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.lfy</groupId> <artifactId>javatestproject</artifactId> <version>0.0.1-SNAPSHOT</version> <name>javatestproject</name> <description>Demo project for Spring Boot</description> <properties> <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、使用@Scheduled
package com.lfy.javatestproject.start; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class TaskDemo { /** * 每5秒执行一次 */ @Scheduled(cron = "0/5 * * * * ? ") public void sayHello(){ System.out.println("Hello."); } /** * 每2秒执行一次 */ @Scheduled(fixedRate = 2000) public void sayHappy(){ System.out.println("I am Happy."); } }
3、将启动项注解@EnableScheduling
package com.lfy.javatestproject; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @EnableScheduling @SpringBootApplication public class JavatestprojectApplication { public static void main(String[] args) { SpringApplication.run(JavatestprojectApplication.class, args); } }
4、运行查看
"C:\Program Files\Java\jdk1.8.0_65\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi... . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.8.RELEASE) 2019-09-25 00:17:31.403 INFO 868 --- [ main] c.l.j.JavatestprojectApplication : Starting JavatestprojectApplication on DESKTOP-V80IF6T with PID 868... 2019-09-25 00:17:31.418 INFO 868 --- [ main] c.l.j.JavatestprojectApplication : No active profile set, falling back to default profiles: default 2019-09-25 00:17:31.935 INFO 868 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2019-09-25 00:17:31.951 INFO 868 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2019-09-25 00:17:31.951 INFO 868 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.24] 2019-09-25 00:17:31.998 INFO 868 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2019-09-25 00:17:31.998 INFO 868 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 564 ms 2019-09-25 00:17:32.107 INFO 868 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor' 2019-09-25 00:17:32.185 INFO 868 --- [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService 'taskScheduler' I am Happy. 2019-09-25 00:17:32.216 INFO 868 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2019-09-25 00:17:32.216 INFO 868 --- [ main] c.l.j.JavatestprojectApplication : Started JavatestprojectApplication in 1.033 seconds (JVM running for 1.53) I am Happy. Hello. I am Happy. I am Happy. Hello. I am Happy. I am Happy. I am Happy. Hello. I am Happy. I am Happy. Hello. I am Happy. I am Happy. I am Happy. Hello. I am Happy.