專案例項:
以自動化專案為例,對於私有雲的自動化專案,往往又使用者手工下發自動化指令碼到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系列的對...