Java SSM框架製做定時任務

服務器老是須要定時處理一些事情,若是單純依靠數據庫的定時任務也不太靠譜,因此就想到了在代碼層進行定時執行,查了一下,還真有,因此轉發一下大神的代碼,親測有效,原文地址:web

https://blog.csdn.net/tmaskboy/article/details/52355678spring

 

下面是正文內容:數據庫

 

在項目中須要添加一個定時任務,完成天天晚上訪問第三方接口用於同步數據,在實際中這樣的定時任務需求不少,好比系統日誌,備份等等,特在網上找了相關內容。 
此處使用的是SSM框架,SpringMVC的配置文件都在springmvc.xml中。 
1. 在springmvc.xml添加以下內容 
在xmlns中添加服務器

xmlns:task="http://www.springframework.org/schema/task"

在xsi中添加mvc

http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.2.xsd

在中間添加框架

<!-- 設置定時任務 -->
<task:annotation-driven/>
  1. 新建TimerTask類 
    代碼以下:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 
 * 類名稱:TimerTask   
 * 類描述:定時器任務
 * 建立人:geekfly
 * 建立時間:Aug 29, 2016 10:56:27 AM      
 * @version  V1.0
 *
 */
@Component
public class TimerTask {
  /**
   * 天天22點30啓動任務
   */
  @Scheduled(cron = "0 30 22 ? * *")
  public void test1()
  {
      System.out.println("job1 開始執行..."+TimeUtils.getTime());
  } 
     @Scheduled(cron = "0/5 * * * * ?")//每隔5秒隔行一次 
  public void test2()
  {
     System.out.println("job2 開始執行");
  } 
}

關於cron的配置.net

CRON表達式 含義 
「0 0 12 * * ?」 天天中午十二點觸發 
「0 15 10 ? * *」 天天早上10:15觸發 
「0 15 10 * * ?」 天天早上10:15觸發 
「0 15 10 * * ? *」 天天早上10:15觸發 
「0 15 10 * * ? 2005」 2005年的天天早上10:15觸發 
「0 * 14 * * ?」 天天從下午2點開始到2點59分每分鐘一次觸發 
「0 0/5 14 * * ?」 天天從下午2點開始到2:55分結束每5分鐘一次觸發 
「0 0/5 14,18 * * ?」 天天的下午2點至2:55和6點至6點55分兩個時間段內每5分鐘一次觸發 
「0 0-5 14 * * ?」 天天14:00至14:05每分鐘一次觸發 
「0 10,44 14 ? 3 WED」 三月的每週三的14:10和14:44觸發 
「0 15 10 ? * MON-FRI」 每一個周1、周2、周3、周4、週五的10:15觸發日誌

———————————–注意————————————— 
添加好以後,啓動服務器不要默默的等着它自動執行,由於它並不會執行!須要手動訪問該項目的一個鏈接才能真正啓動服務器。code

由於web項目默認並非隨Tomcat啓動的!!! 
並且TimerTask類必須在配置的包掃描下!!!xml

相關文章
相關標籤/搜索