Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jqcron cron格式转换为支持Quartz cron格式_Javascript_Jquery_Cron - Fatal编程技术网

Javascript 将jqcron cron格式转换为支持Quartz cron格式

Javascript 将jqcron cron格式转换为支持Quartz cron格式,javascript,jquery,cron,Javascript,Jquery,Cron,我正在使用jqCron生成cron表达式来调度我的作业。每天9:30的cron表达式示例为“309***” 石英支持的同一表达式的cron格式为“0 30 9**?” 是否有任何js实用程序可用于将jqCron生成的cron转换为支持石英格式的cron,反之亦然 在本例中,jqCron js内部方法被覆盖以支持Quartz格式。我们可以在不覆盖jqcronjs的情况下使用一些js实用程序功能吗 谢谢浏览下面的链接。我使用了这个API,它与石英兼容 有些人可以从上面的Git存储库下载源代码,并

我正在使用jqCron生成cron表达式来调度我的作业。每天9:30的cron表达式示例为“309***”
石英支持的同一表达式的cron格式为“0 30 9**?”

是否有任何js实用程序可用于将jqCron生成的cron转换为支持石英格式的cron,反之亦然

在本例中,jqCron js内部方法被覆盖以支持Quartz格式。我们可以在不覆盖jqcronjs的情况下使用一些js实用程序功能吗


谢谢

浏览下面的链接。我使用了这个API,它与石英兼容

有些人可以从上面的Git存储库下载源代码,并在他们的项目中包含CSS文件和jquery-cron-min.js文件。下面的代码片段对任何人来说都是一个好的开始

$('#schedulerWidget').cron({ initial: "0 0/1 * * * ?", onChange: function() { cronValue = $('#schedulerWidget').cron("value"); console.log('Cron Updated Value: '+cronValue); $("#schedulerWidgetSelctedValue").text(cronValue); }, customValues: { "5 Minutes" : "0 0/5 * * * ?" } }); $('#schedulerWidget').cron({ 首字母:“0 0/1***?”, onChange:function(){ cronValue=$('#schedulerWidget')。cron(“value”); log('Cron更新值:'+cronValue); $(“#schedulerWidgetSelctedValue”).text(cronValue); }, 自定义值:{ “5分钟”:“0/5***” } });
在使用以下工具安排Quartz作业之前,我使用backoffice转换

和下面的助手类

public class CronTimeDefinition {

public static final String CRON_SCHEME_MANUAL = "manual";
private boolean            isManual           = false;
private boolean            isCorrect          = false;
private String             unixDefinition;

public CronTimeDefinition(String definition) {

    if (definition.equals(CRON_SCHEME_MANUAL)) {
        isCorrect = true;
        isManual = true;
    } else {
        CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);
        CronValidator oValidator = new CronValidator(cronDefinition);

        if (oValidator.isValid(definition)) {
            unixDefinition = definition;
            isCorrect = true;
            isManual = false;
        }
    }
}

public boolean isManual() {
    return isManual;
}

public static boolean isManual(String crondef) {
    return crondef.contains(CRON_SCHEME_MANUAL);
}

public boolean isCorrect() {
    return isCorrect;
}

public String getUnixDefinition() {
    return unixDefinition;
}

public String getQuartzDefinition() {
    return cronConversion(unixDefinition, CronType.UNIX, CronType.QUARTZ);
}

/**
 * Cron format converter
 *
 * @param a_cronStrin gcron string to convert
 * @param a_from input type
 * @param a_to : output type
 *
 * @return converted format cron
 */
private static String cronConversion(String a_cronString, CronType a_from, CronType a_to) {
    String result = "";

    if ((a_from == CronType.UNIX) && (a_to == CronType.QUARTZ)) {
        String[] cronSplited = a_cronString.split("\\s+");
        if ("*".equals(cronSplited[2])) {
            cronSplited[2] = "?";
        } else if ("*".equals(cronSplited[4])) {
            cronSplited[4] = "?";
        }
        String[] days = cronSplited[4].split("[,-\\-]+");
        for (int i = 0; i < days.length; i++) {

            if (StringUtils.isNumeric(days[i])) {
                cronSplited[4] = cronSplited[4].replace(days[i], String.valueOf(Integer.parseInt(days[i]) + 1));
                days = cronSplited[4].split("[,-\\-]+");
            }
        }

        // Force 0 for seconds field
        result = "0 " + String.join(" ", cronSplited) + " *";
    } else if ((a_from == CronType.QUARTZ) && (a_to == CronType.UNIX)) {
        result = a_cronString.substring(2, a_cronString.length() - 2).replace("?", "*");
    }
    return result;
}

@Override
public String toString() {
    if (isCorrect) {
        if (isManual)
            return "manual";
        else
            return unixDefinition;
    } else {
        return "incorrect definition : " + unixDefinition;
    }
}
公共类CronTimeDefinition{
公共静态最终字符串CRON\u SCHEME\u MANUAL=“MANUAL”;
私有布尔isManual=false;
私有布尔值isCorrect=false;
私有字符串唯一定义;
公共CronTimeDefinition(字符串定义){
if(定义等于(CRON_方案_手册)){
isCorrect=正确;
isManual=真;
}否则{
CronDefinition CronDefinition=CronDefinitionBuilder.instanceDefinitionFor(CronType.UNIX);
CronValidator oValidator=新的CronValidator(cronDefinition);
if(oValidator.isValid(定义)){
unixDefinition=定义;
isCorrect=正确;
isManual=假;
}
}
}
公共布尔isManual(){
回归手动;
}
公共静态布尔isManual(字符串crondef){
返回crondef.contains(CRON_SCHEME_手册);
}
公共布尔值isCorrect(){
返回正确;
}
公共字符串getUnixDefinition(){
返回unixDefinition;
}
公共字符串getQuartzDefinition(){
返回cronConversion(unixDefinition,CronType.UNIX,CronType.QUARTZ);
}
/**
*Cron格式转换器
*
*@param a_crontrin gcron要转换的字符串
*@param a_来自输入类型
*@param a_to:输出类型
*
*@return转换格式cron
*/
私有静态字符串cronConversion(字符串a_cronString、CronType a_from、CronType a_to){
字符串结果=”;
if((a_-from==CronType.UNIX)和&(a_-to==CronType.QUARTZ)){
String[]cronSplited=a_cronString.split(\\s+);
如果(“*”.equals(cronSplited[2])){
cronSplited[2]=“?”;
}else如果(“*”.equals(cronSplited[4])){
cronSplited[4]=“?”;
}
字符串[]天=cronSplited[4]。拆分(“[,-\ \-]”);
对于(int i=0;i
Quartz cron格式的语法是什么?我假设更改并不像
在最后一个字段中添加前导零并使用“?”而不是“*”
?Quartz格式是每月的第二个星期天的第二分钟小时。因此它只是有一个额外的前导秒列,并使用
而不是
*
?(我假设
到处都是通配符,而不仅仅是
DayOfWeek
列中的通配符。)棘手的部分是使用?从jqCron转换为石英Cron格式。它不是到处都是通配符。那么规范是什么?有文档吗?