Quartz Cron表达式 生成

当前项目需要让客户自己输入cron表达式,所以提供个页面生成cron表达式

网上看了下,找到了 https://www.cnblogs.com/yanweidie/p/3537144.html,非常感谢作者

大致就是按照以下的顺序进行整合

1.img // 这个不用讲

2.html // 更改下css、js的引入路径

3.css // easyui.min.css需要替换图片路径,就是你上面img放入的路径

background: ${ctxPath}/static/img/cron/panel_tools.png no-repeat -16px 0px;

4.js //修改一些东西

    cron.change(function () {
        btnFan();
        //设置最近五次运行时间
        $.ajax({
            type: 'get',
            url: "/cron/expression",//这里需要替换成后台url
            dataType: "json",
            data: { "CronExpression": $("#cron").val() },
            success: function (val) {
                if(val.code === 0){
                    var data = JSON.parse(val.data);
                    if (data && data.length == 5) {
                        var strHTML = "<ul>";
                        for (var i = 0; i < data.length; i++) {
                            strHTML += "<li>" + data[i] + "</li>";
                        }
                        strHTML +="</ul>"
                        $("#runTime").html(strHTML);
                    } else {
                        $("#runTime").html("");
                    }
                }
            }
        });
    });    

5.Controller // 作者是使用jsp来处理,所以这里将它修改成Controller

  a.提供一个路径跳转

  b.提供一个计算最近5次计算时间

import com.stylefeng.guns.core.base.tips.SuccessTip;
import com.stylefeng.guns.core.util.DateUtil;
import org.quartz.impl.triggers.CronTriggerImpl;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.text.ParseException;
import java.util.Date;

/**
 * @Auther: eros
 * @Date: 2019/2/21 18:33
 * @Description:
 */
@Controller
@RequestMapping("/cron")
public class CronController {

    private static final String PREFIX = "/cron/";

    @RequestMapping
    public String cron(){
        return PREFIX + "cron.html";
    }

    /**
     * @auther: eros
     * @param CronExpression cron表达式
     * @date: 2019/2/22 10:55
     * @description 返回最近5次的结果时间
     * @return: java.lang.Object
     */
    @RequestMapping("/expression")
    @ResponseBody
    public Object expression(String CronExpression){
        StringBuffer sbResult = new StringBuffer();
        sbResult.append("[");
        try {
            CronTriggerImpl trigger = new CronTriggerImpl();
            trigger.setCronExpression(CronExpression);
            Date start = trigger.getStartTime();
            for(int i=0;i<5;i++){
                Date next = trigger.getFireTimeAfter(start);
                sbResult.append(", \"").append(DateUtil.formatDate(next,"yyyy-MM-dd HH:mm:ss")).append("\"");
                start = next;
            }
            sbResult.append("]");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return new SuccessTip(sbResult.replace(sbResult.indexOf(","),sbResult.indexOf(",")+1,""));
    }

}

 

posted @ 2019-02-22 11:05  eros_token  阅读(1369)  评论(0编辑  收藏  举报