1. 程式人生 > 其它 >uDock Mac版一款快速而簡單的Dock欄快速啟動工具

uDock Mac版一款快速而簡單的Dock欄快速啟動工具

在日常開發過程中,定時任務隨處可見。例如,訂火車票如果超過30分鐘未支付,需要將訂單改為取消支付;淘寶訂單超過15天未確認收貨需要自動更改狀態。下面介紹兩種定時任務的實現方式。一是SpringBoot自帶的scheduled,二是Quartz

第一種:scheduled

先搭建一套SpringBoot微服務,在啟動類上新增@EnableScheduling,再配置一個定時任務配置類,方法在啟動後,每三秒會執行一次。

package com.example.demo.task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import java.util.Date; /** * @Author helin * @Date 2021/8/13 14:24 * @Description Springboot schedule */ @Component @Slf4j public class SbScheduleTask1 { @Scheduled(cron = "*/3 * * * * ?") public void task1() throws InterruptedException { log.error(
"我是Task,我的執行緒ID是 {},時間是 {}", Thread.currentThread().getId(), new Date() ); } }

如果想要兩個定時任務非同步並行執行,需要配置一個執行緒池

@Configuration
@Slf4j
publicclass ScheduleConfig implements SchedulingConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.setScheduler(taskExecutor());    
    }
    @Bean
    
public Executor taskExecutor(){ return Executors.newScheduledThreadPool(10); } }

第二種:Quartz