下面是兩種方法定時任務,一個是集成quartz,另一個是spring自帶的定時任務,後者更簡單一些。spring
該博客爲入門級博客,若是想要查看企業使用Quartz場景,點擊 --> 手動操做定時任務tomcat
springboot2.0以後,spring-boot-starter中已經包含了quart的依賴,因此只須要添加一個依賴springboot
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>
public class MjtTask extends QuartzJobBean { @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("開始定時計時"); } }
@Configuration public class QuartzConfig { @Bean public JobDetail uploadTaskDetail() { return JobBuilder.newJob(MjtTask.class).withIdentity("mjtTask").storeDurably().build(); } @Bean public Trigger uploadTaskTrigger() { CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("*/5 * * * * ?"); return TriggerBuilder.newTrigger().forJob(uploadTaskDetail()) .withIdentity("mjtTask") .withSchedule(scheduleBuilder) .build(); } }
每五秒執行一次定時方法ide
項目啓動後,定時任務開始操做,如圖:spring-boot
2018-07-27 15:51:34.799 INFO 44549 --- [ main] o.s.s.quartz.SchedulerFactoryBean : Starting Quartz Scheduler now 2018-07-27 15:51:34.799 INFO 44549 --- [ main] org.quartz.core.QuartzScheduler : Scheduler quartzScheduler_$_NON_CLUSTERED started. 2018-07-27 15:51:34.861 INFO 44549 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2018-07-27 15:51:34.868 INFO 44549 --- [ main] com.mjt.spring5.Spring5Application : Started Spring5Application in 6.087 seconds (JVM running for 9.163) 開始定時計時 開始定時計時 開始定時計時 開始定時計時 開始定時計時 開始定時計時 開始定時計時
沒有任何配置,直接添加三個註解便可。ui
@Component @Configurable @EnableScheduling public class TestTask { @Scheduled(cron = "0/1 * * * * ?") public void test(){ System.out.println("spring定時任務方法"); } }
於此,咱們使用quartz就能夠應付全部的定時任務啦。spa