quartz定時任務cron表達式講解及翻譯成現實語言的插件的使用詳解


cron表達式講解

參見該網址:

https://www.cnblogs.com/GarfieldTom/p/3746290.html

 

cron表達式只有專業技術人員才看得懂,普通人不知道表達式是什么意思,

有需求讓我們將cron表達式翻譯成普通人可以看懂的文字,剛開始覺得這個

需求有點強人所難,不過后來在網上竟然找到了解決方案。

在GitHub上有開源的項目,鏈接如下:

https://github.com/bradymholt/cRonstrue

將項目下載到本地,解壓壓縮包,點開文件夾,copy里面的dist文件夾到自己

需要的項目里,dist里面有cron表達式翻譯的核心js包和locales國際化的相關語言包。

 

在要翻譯cron表達式的頁面引入核心js包:

<script src="<%=basePath%>/js/dist/cronstrue-i18n.min.js" type="text/javascript"></script>

 

在需要翻譯的地方調用js包里提供的API,很簡單只有一句代碼:

cronstrue.toString(cronString, { locale: "zh_CN" })

第一個參數是cron表達式,

第二個參數是一個JSON對象,locale的值為相應的語言標識,這里翻譯成中文。

 

如果要將列表里含有cron表達式的一列的值翻譯成中文,就必須在頁面加載完畢后來做特殊處理,

下面給一個例子:

js代碼:

//同步表格定時規則翻譯
$("[name='cronString']").each(function(){
	var cronString = $(this).text();
	if(cronString){
		$(this).prop("innerHTML",cronstrue.toString(cronString, { locale: "zh_CN" }));
	}
});
//異步表格定時規則翻譯
var checksObj = $('td[data-index="10"]').find(".datatable-cell .text-center").prevObject;
if (null != checksObj && checksObj.length >= 1) {
	for (var i = 0; i < checksObj.length; i++) {
		var cronString = $(checksObj[i]).text();
		if(cronString){
			$(checksObj[i]).prop("innerHTML",cronstrue.toString(cronString, { locale: "zh_CN" }));
		}
    }
}

html代碼如下:

<td name="cronString">${modelNameToCronExpress[tmodelMaintainConfig.modelName] }</td>

因為前端用的由bootstrap改寫的zui框架所以表格實際上有兩份,一份是同步表格即html里編寫的表格,另一份是

框架自動渲染的表格,所以js代碼要寫兩份。之所以要在td上加一個name屬性是為了方便獲取cron表達式這一列的

所有td對象。

總體思想是獲取所有待替換對象,遍歷獲取每個對象的值調用翻譯API后將值賦值給原對象。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM