官网教程
gitee
https://gitee.com/xuxueli0323/xxl-job
github
https://github.com/xuxueli/xxl-job
- xxl-job主要分为调度中心和执行器项目
调度中心对应xxl-job项目中的xxl-job/xxl-job-admin,执行器项目对应xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot
- 部署过程
1、配置文件修改
/xxl-job/xxl-job-admin/src/main/resources/application.properties
/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
2、
如果已经正确进行上述配置,可将项目编译打包部署。
调度中心访问地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址)
默认登录账号 “admin/123456”, 登录后运行界面如下图所示。
显示spring boot欢迎页,表示执行器部署成功。
=================================================================================================================
任务详解-主要介绍GLUE模式(Java)
先看官方介绍
步骤一:调度中心,新建调度任务:
步骤二:开发任务代码:
选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。
=================================================================================================================
项目实战-EveryMonthExecuteJobHandler
package com.enation.app.javashop.consumer.job.handler;
import com.enation.app.javashop.model.base.JobAmqpExchange;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.enation.app.javashop.framework.logs.Logger;
import com.enation.app.javashop.framework.logs.LoggerFactory;
import com.enation.app.javashop.framework.rabbitmq.MessageSender;
import com.enation.app.javashop.framework.rabbitmq.MqMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 每日执行
*
* @author chopper
* @version v1.0
* @since v7.0
* 2018-07-06 上午4:24
*/
@JobHandler(value = "everyMonthExecuteJobHandler")
@Component
public class EveryMonthExecuteJobHandler extends IJobHandler {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private MessageSender messageSender;
@Override
public ReturnT<String> execute(String param) throws Exception {
try {
this.logger.debug("发送每月定时任务");
messageSender.send(new MqMessage(JobAmqpExchange.EVERY_MONTH_EXECUTE,
JobAmqpExchange.EVERY_MONTH_EXECUTE + "_ROUTING",
""));
} catch (Exception e) {
this.logger.error("每月任务AMQP消息发送异常:", e);
return ReturnT.FAIL;
}
return ReturnT.SUCCESS;
}
}
=================================================================================================================