xxl-job
今天简单介绍下xxl-job的入门使用教程
首先下载我们需要的 xxl-job
项目
- xxl-job-admin 调度中心
- xxl-job-core 公共依赖
- xxl-job-executor-samples 执行器示例
下载地址:
1、初始化数据库
下载好项目后,运行我们项目目录 xxl-job/doc/db/
下的 sql 文件初始化数据库。
2、修改配置文件
修改 xxl-job-admin
项目 resource 下的 application.properties
文件,将数据库的配置信息(url、username、password)修改为自己本地或者是远程服务器数据库的信息。这里入门教程没有使用到报警邮件通知那块,所以就没有 贴出来配置文件中的 邮箱修改内容,可以自行去修改一下。
当然除了必须修改数据库相关的信息外,我们还可以修改项目的端口号,servlet上下文路径(这些都是可选的)
### xxl-job, datasource
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
username: username
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
3、运行jar包
选择 jar 包是为了方便,我们要访问调度中心平台就需要启动 xxl-job-admin
这个项目,所以为了方便不用每次都在开发工具中启动项目,这里选择运行 jar 包的方式。
mvn clean package
打包
使用 命令mvn clean package
打包 刚刚修改完的xxl-job-admin
项目,就会在target 目录下 生成我们需要的 jar 包。java -jar jar包名字
运行jar 包
通过命令java -jar jar包名字
运行jar 包。也可以将jar包部署在远程服务器上更为方便一点。(关于如何在远程服务器上部署jar包前文有写道,如果有不知道怎么做的或者是忘记的可以翻回去看看哦,o((>ω< ))o )
4、访问调度中心
- 根据自己 yml 配置,访问调度中心
http://localhost:8081/xxl-job-admin
- 默认登陆账号:
admin/123456
### web
server:
port: 8081
servlet:
context-path: /xxl-job-admin
5、使用 xxl-job 调度中心
- 添加 maven 依赖
可以从官网 mvnrepository.com 中搜索 xxl-job
<!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.0</version>
</dependency>
- 编写配置文件
xxl:
job:
admin:
# 调度中心的地址,也就是我们前文配置文件里配置的,访问调度中心的url
addresses: http://127.0.0.1:8080/xxl-job-admin
# 执行器的名字
executor:
appname: my-xxl-job-test # 需和任务调度中心的执行器AppName一致
#ip: xxxx
port: 9999 # ip 和 端口 会在调度中心的调度日志里面的调度备注里有显示
accessToken: default_token
- 执行器组件配置
@Configuration
@Slf4j
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appname}")
private String appName;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
// xxlJobSpringExecutor.setIp(ip);
// xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
// xxlJobSpringExecutor.setLogPath(logPath);
// xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
- 编写执行器
@Slf4j
@Component
public class MyXxlJobHandler {
//定时打印
@XxlJob("myXxlJobDemo") //需和任务调度中心里任务管理里面的JobHandler一致
public void myXxlJobDemo() {
//在控制台打印日志输出
log.info("第一个xxl-job 测试");
}
}
- 调度中心 创建执行器 和 新增任务
执行器 AppName 必须和 配置文件中的 appname 一致,可以选择手动注册,自动注册会在我们任务启动时根据 yml 配置文件的详情自动注册一个。启动任务后可以回到这儿再次观察选了自动注册后的注册节点。
可以看到已经创建好了我们需要的执行器 新增任务
创建好,可以选择操作是执行一次还是一直启动(会按照我们的CORN表达式指定的时间来执行)等其他。
启动后台项目后,我们选择启动来看看后台打印情况,因为CORN表达式是定义的一秒一次,可以发现后台一直再打印。测试案例执行完后记得停止任务,不然后台会一直打印。
查看调度日志
全部执行成功,调度备注里面会有一些详情信息,比如说上文配置文件里配置的 ip 和端口号等
至此,入门小demo就结束啦ヽ(≧□≦)ノ。
另外关于调度中心用户管理,可以新增管理员和普通用户,可以给普通用户分配执行器的权限。
💌 今日分享收尾啦 ༼ つ ◕_◕ ༽つ感谢大家!!!如有不足之处欢迎大家指正!!!