应用quartz框架

能够利用quartz实现程序中动静增加定时工作,步骤为创立Job接口的实现类,之后创立JobDetail指定Job实现类,配合创立的Trigger应用Schedule启动即可,能够参考quartz教程

对xxl-job的admin模块进行革新实现

xxl-job自身反对通过页面治理端进行工作的增加,实质上是调用的后盾接口实现。在2.3.0版本的xxl-job的admin模块的com.xxl.job.admin.controller.JobInfoController类中为对工作进行增删改查的入口,业务类由XxlJobService实现,能够参考。须要留神的是amdin治理模块默认对所有申请有权限校验,不能随便拜访,须要应用注解@PermissionLimit加在controller办法上来管制是否开启权限。

/**     * 自定义增加定时工作接口,不拦挡申请     * @param jobInfo     * @return     */    @PostMapping("/myadd")    @ResponseBody    @PermissionLimit(limit = false)    public ReturnT<String> myAdd(@RequestBody XxlJobInfo jobInfo) {        return xxlJobService.add(jobInfo);    }

下面为自定义的增加工作接口,上面给出申请报文样例:

{    "jobGroup":3,    "jobDesc":"接口增加工作",    "author":"guomz",    "scheduleType":"CRON",    "scheduleConf":"0/2 * * * * ?",    "executorHandler":"demoJobHandler",    "executorParam":"aaa,ccc",    "glueType":"BEAN",    "executorRouteStrategy":"FIRST",    "misfireStrategy":"DO_NOTHING",    "executorBlockStrategy":"SERIAL_EXECUTION"}

其中jobGroup为执行器在xxl-job数据库xxl_job_group的主键id,参数与页面传递的参数基本一致,留神必填参数的值,例如后三个。之后再参照增加工作的办法批改触发工作的接口,调用执行即可。