Quartz 定時策略思路

2021-09-28 18:17:42 字數 957 閱讀 1554

專案例項:

以自動化專案為例,對於私有雲的自動化專案,往往又使用者手工下發自動化指令碼到agent,執行任務。

但是對於安全加固類的操作,不可能去手工選擇十萬機器,去安裝補丁,往往需要自動化完成。

對於這類業務,就需要提供自動化策略配置,後台排程定期掃瞄,週期性執行任務。

初次之外,監控、安檢、磁碟日誌清理等等也會有全量,或者指定篩選條件的全量任務定期下發。

設計思路:

以前用的方法,是指定時間點進行撞針,裝不上就是悲劇。改造後的整體方案如下

1、建立定時策略表-db持久化。

2、提供ui互動,用於web編輯策略。

3、用quartz 建立job,例如沒分鐘定期掃瞄。

後面整條鏈路肯定離不開,kafka非同步訊息佇列,s3分布式檔案儲存,redis心跳任務對沖,四層交換分流,python 或php os 任務獲取執行等等。

關鍵點說明:

1、建立任務啟動時,指定執行時間,設定執行頻率改為cron。

quartz2.0以上版本有cron工具類。可以擁有計算時間。

public

class

cronutils

if(stringutils.

isnotempty

(cronexpression )

)return dateutils.

addminutes

(now,2)

;}public

static date getnextvalidtimeafternew

(string cronexpression,date now)

if(stringutils.

isnotempty

(cronexpression)

)return now;

}}

簡單記錄下,以後專案再使用。

動態配置Quartz定時任務的思路

本文前置條件 quartz 2.2.1,spring 3.1以上版本,quartz 2以下類似,只是具體類中對於配置動態任務寫法不同。本文所說的動態是指把定時任務動態配置在資料庫中。本文只是簡單的寫下思路,寫的不好請見諒!主要思路如下 1 首先配置乙個定時任務的類,taskinfo,可以如下 定時任...

quartz定時任務

此檔案被包含在spring配置檔案中,其中 引數 的值遵循如下規則 0 0 12 每天中午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 在每天...

Quartz定時排程

quartz定時排程 在包含了spring依賴包情況下加入quartz所依賴包 org.quartz schedulergroupid quartzartifactid 2.2.1version dependency spring用的4.0.2版本 需要注意的是quartz的版本區別 1.x系列的對...