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后将值赋值给原对象。
quartz定时任务cron表达式讲解及翻译成现实语言的插件的使用详解的更多相关文章
- quartz定时任务cron表达式
cron 表达式格式:秒 分 时 日 月 周 年(可选) 子表达式范围 字段名 字段解释 值范围 特殊字符 Seconds 秒 0~59 , - * / Minutes 分 0~59 , - * / ...
- quartz定时任务cron表达式详解
引用:https://www.cnblogs.com/lazyInsects/p/8075487.html cron表达式用于配置cronTrigger的实例.cron表达式实际上是由七个子表达式组成 ...
- springboot内嵌定时任务使用及cron表达式讲解
第一步:pom引入依赖 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...
- Quartz 用 cron 表达式存放执行计划
Quartz 用 cron 表达式存放执行计划.引用了 cron 表达式的 CronTrigger 在计划的时间里会与 job 关联上. 1.Quartz cron 表达式支持七个域如下: 名称 是否 ...
- quartz定时任务时间表达式说明
quartz定时任务时间表达式说明 这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月 ...
- Java EE学习——Quartz的Cron表达式
经历过低谷后,还是要好好学习,越失落会越来越落后. 今天写一下Cron表达式的用法,虽然是之前自己写的,也过了挺长一段时间,这次就拿出来作为回顾吧. Cron表达式是Quartz的精髓(个人觉得),比 ...
- Quartz中Cron表达式使用方法
Quartz中CronTrigger支持日历相关的反复时间间隔(比方每月第一个周一运行),而不是简单的周期时间间隔. 它的调度规则基于 Cron 表达式. 以下就来说一下Cron表达式的规则及使用方法 ...
- 开源作业调度框架 - Quartz.NET - Cron表达式测试
昨天简单写了一下如何使用Quzrtz.NET. 那么问题来了,我设置了Cron表达式之后如何知道是表达式是否按照预期的时间执行了呢? 我找到了些Cron表达式工具生成了表达式,确发现它们基本上没有进行 ...
- Quartz 在线Cron表达式
Quartz自己配置Cron好麻烦,下面是一个在线Cron表达式生成器的网站,非常方便,现在使用Cron时基本上就直接用这个了. http://cron.qqe2.com/ Cron表达式 cronE ...
随机推荐
- 每天进步一点点------Allegro 铺铜、内电层分割
一.Allegro 铺铜 1.建议初学者内电层用正片,因为这样就不用考虑flash焊盘,这时候所有的过孔和通孔该连内电层的就连到内电层,不该连的就不连.而如果用负片,那么如果做焊盘的时候如果没有做fl ...
- 【原】AMFObject数据格式详解
AMF AMF是Action Message Format(动作消息格式)的简写,它是一种二进制的数据格式.它的设计是为了把actionscript里面的数据(包括Object, Array, Boo ...
- 传奇服务端添加双倍经验卷的方法 双倍经验卷轴DB示例展示
第一步我们在DBC数据库中添加好双倍经验卷轴DB,以下是现成的双倍经验卷DB,导入到DB里面就可以了. 222;双倍经验卷;31;0;1;20;0;0;265;0;0;0;0;0;0;0;0;0;0; ...
- P1177排序题解
这恐怕是一道 坑最多 最经典 的题目了. 这道题有两种解题方法: 1.自己写个排序函数 这里我们用最最最最常用的快速排序: #include <iostream> #define ll l ...
- Leetocde的两道丑数题目:264. 丑数 II➕313. 超级丑数
Q: A: 用变量记录已经✖2.✖3.✖5的元素下标i2.i3.i5.表示截止到i2的元素都已经乘过2(结果添加到序列尾部的意思),i3.i5同理.这样每次可以循环可以O(1)时间找到下一个最小的丑数 ...
- webview在compileSdkVersion 大于等于23 android6.0以上系统执行js代码异常,但是在compileSdkVersion小于23 android6.0以下系统却执行正常问题
问题分析: 在compileSdkVersion>=23 android6.0以上webview.loadUrl用这个方法执行js时会将js中的一些代码当做特殊字符处理, 比如js中var t= ...
- android .9背景图作为TextView背景时文字无法居中问题
问题产生原因: .9图黑色边框绘制伸缩区域有问题,重叠的最大区域是TextView文字所能显示的区域 如下图所示,横向和纵向最大重叠部分就是文字可显示部分,这个图作为背景后文字整体偏下,无法上下居中对 ...
- P & R 8
Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 通常,遇到floorplan问题,大致的debug步骤跟方法有哪些? 如何衡量floorplan的QA? T:Block lev ...
- python关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)
一:os模块 os模块提供了许多允许你程序与操作系统直接交互的功能 功能 说明 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirna ...
- RHEL6-HA集群在VMware虚拟机环境安装配置文档
(一)系统环境描述 本文档基于RHEL6u5 系统安装,配置为2节点高可用集群,节点为两台VMware虚拟机. 也可参考http://blog.51cto.com/ty1992/1325327 (二) ...