1.xxl-job下载地址gitee:https://gitee.com/xuxueli0323/xxl-job/tree/2.3.0
2.下载完后将下载的压缩包解压兵导入IDEA中,其目录机构如下
3.启动xxl-job-admin项目(该项目是一个springboot项目,启动main就可以了)
4.也可以通过命令启动,将下载好的压缩包解压后,找到解压目录,然后进入到 :D:\soft\xxl-job-2.3.0\xxl-job-admin\target(此处是我的解压目录,需改成个人解压的目录),其结构如下:
如果解压后的目录没有target目录,需要使用mvn进行编辑,mvn clean package,然后进入该目录后通过cmd进入命令行,windows使用java -jar xxl-job-admin-2.3.0.jar命令启动,linux暂不介绍
至此,xxl-job服务端已经启动,完成上述步骤后可以通过(http://localhost:8080/xxl-job-admin/jobinfo)来访问xxl-job的web界面
5.至此我们可以在自己的项目工程里面来使用该任务调度框架了,如下面的demo工程,项目依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.github.zero9102</groupId>
<artifactId>xxl-job-spring-boot-starter</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
6.主配置文件application.properties
xxl.job.executor.appname=file-upload-download-demo
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=
xxl.job.executor.port=9999
### xxl-job executor log-path
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### xxl-job executor log-retention-days
xxl.job.executor.logretentiondays=30
filepath: D:/upload
7.xxl-job所需要的配置
package com.djwzth.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.Data;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Configuration
@Data
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appname);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
/**
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
*
* 1、引入依赖:
* <dependency>
* <groupId>org.springframework.cloud</groupId>
* <artifactId>spring-cloud-commons</artifactId>
* <version>${version}</version>
* </dependency>
*
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、获取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
*/
}
8.写一个任务类继承IJobHandler
package com.djwzth.service;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;
@Component
public class MyJobHandler extends IJobHandler {
@Override
@XxlJob(value = "jobDemo3")
public void execute() throws Exception {
System.out.println("hello world!");
}
}
9启动demo工程
10.在任务调度中心界面打开 执行器界面(添加和自己工程名相对应,注册方式选择自动配置)如果OnLine机器地址显示的是无,说明你定时任务所在的那个工程没有启动起来,启动后基本上都能显示查看
11.进入任务管理界面,新增一个定时任务
12. 通过操作启动该任务:
13.看到控制台输出语句,说明该任务调度中心执行目标工程的定时任务成功:
14.还可以查看xxl-job的日志信息,查看项目定时任务的实时日志