1. 程式人生 > >SpringBoot定時任務配置

SpringBoot定時任務配置

一、建立工程

新建SpringBoot工程,在程式的入口增加@EnableScheduling註解。

@SpringBootApplication
@MapperScan("com.wzj.demo.mapper")
@EnableScheduling
public class SpringBootWebSocketApplication  extends SpringBootServletInitializer{

	public static void main(String[] args) {
		SpringApplication.run(SpringBootWebSocketApplication.class, args);
	}

	/**
	 *
	 * @param builder a builder for the application context
	 * @return the application builder
	 * @see SpringApplicationBuilder
	 */
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)
	{
		return super.configure(builder);
	}
}

二、建立定時任務

在類新增@Component註解,在類的方法上增加@Scheduled註解

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;

@Component
public class TestTimeTask
{
    /**
     * 首次延時1s,然後每2秒執行一次
     */
    @Scheduled(initialDelay = 1000,fixedRate = 2000)
    public void task()
    {
        System.out.println(new Date());
    }
}

@Scheduled註解說明該方法是一個排程任務。

  • @Scheduled(fixedRate = 5000) :上一次開始執行時間點之後5秒再執行
  • @Scheduled(fixedDelay = 5000) :上一次執行完畢時間點之後5秒再執行
  • @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延遲1秒後執行,之後按fixedRate的規則每5秒執行一次
  • 也可以通過cron表示式

執行工程,每2秒列印一行時間日誌