如何測試quartz定時任務邏輯

系統通常會有一些後臺定時任務,假設咱們使用quartz實現定時任務,那麼有兩個測試功能點:java

  1. 定時任務邏輯是否正確
  2. 定時器cron表達式編寫是否正確,觸發時間點是否正確

定時任務邏輯測試xcode

若是定時任務在晚上11點執行,咱們不可能要求測試人員等到晚上11點時,再去檢查任務執行邏輯邏輯是否正確。咱們能夠提供一個定時器任務管理界面,讓測試人員可以手動觸發任務立刻執行一次。具體實現能夠參見:https://www.dexcoder.com/selfly/article/311測試

定時器cron表達式測試code

若是cron表達式比較複雜,或不太肯定表達式是否編寫正確,能夠打印cron表達式,後續幾回觸發任務執行的時間點,就能夠方便檢驗cron表達式編寫是否正確。orm

打印cron表達式,後續幾回觸發任務執行時間點,代碼示例:get

package org.quartz.demo;

import org.quartz.impl.triggers.CronTriggerImpl;

import java.text.SimpleDateFormat;
import java.util.Date;

public class CronTriggerImplDemo {

    public static void main(String[] args) throws Exception {

        CronTriggerImpl trigger = new CronTriggerImpl();
        trigger.setCronExpression("0 */1 * * * ?");

        trigger.triggered(null);

        Date fireTime = trigger.getNextFireTime();
        for (int i = 0; i < 3; i++) {
            if (fireTime != null) {
                System.out.println("下次執行時間點=" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(fireTime));
                fireTime = trigger.getFireTimeAfter(fireTime);
            } else {
                break;
            }
        }

    }

}

輸出示例:io

下次執行時間點=2017-04-23 15:52:00
下次執行時間點=2017-04-23 15:53:00
下次執行時間點=2017-04-23 15:54:00form

相關文章
相關標籤/搜索