如何快速搭建xxl-job项目详解
如何快速搭建xxl-job项目详解
登录
如何快速搭建xxl-job项目详解
如何快速搭建xxl-job项目详解

如何快速搭建xxl-job项目详解

本文重点讲解如何快速搭建xxl-job分布式任务调度框架项目,不对xxl-job做深入介绍,如果还不了解该框架的可以移步《xxl-job分布式任务调度框架详解》这篇文章,本文只讲解如何快速搭建xxl-job项目相关的实操步骤,我们一起来看以下。

搭建xxl-job项目xxl-job主要分为4个步骤:

第1步:下载xxl-job源码

首先我们去github或者gitee去下载xxl-job的项目源码,这里我下载2.4.0的版本。以下是下载地址:

github[]:https[]://git[]hub.co[]m/xuxu[]eli/xx[]l-job

gitee:[]https:[]//gite[]e.com/[]xuxuel[]i0323/[]xxl-jo[]b

xxl-jo[]b官方教程文[]档:http[]s://ww[]w.xuxu[]eli.co[]m/xxl-[]job/

下载时选择自己想要的版本,建议是稳定版。

第2步:初始化数据库SQL

接下来,我们需要初始化“调度数据库”,请将下载好的项目源码解压,获取 “调度数据库初始化SQL脚本” 并执行即可,SQL脚本位置在如下:

/xxl-job/doc/db/tables_xxl_job.sql

注意:

1)该SQL[]脚本是mys[]ql数据库脚[]本,会自动创[]建名为xxl[]_job的数[]据库,表名也[]都是xxl_[]job开头的[],如果你要修[]改数据库名称[],记得提前改[]下脚本,初始[]化后一共8张[]表如下:

如何快速搭建xxl-job项目详解

2)另外,调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例,如果mysql做主从,调度中心集群节点务必强制走主库。

第3步:配置部署“调度中心”

接下来我们需要配置部署“调度中心”,调度中心的作用是统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。其实就是我们可视化的后台管理项目,即调度中心项目:xxl-job-admin。

因此,我们需要将源码中xxl-job-admin项目导入IDEA,由于是maven开发的,因此你本地需要配置好maven环境,没配置过的请参考《IntelliJ IDEA如何整合Maven图文教程详解》。

3.1:修改调度中心配置文件:

调度中心配置文件地址:

/xxl-job-admin/src/main/resources/application.properties

调度中心配置内容说明:

### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghaispring.datasource.username=rootspring.datasource.password=root_pwdspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver### 报警邮箱spring.mail.host=smtp.qq.comspring.mail.port=25spring.mail.username=xxx@qq.comspring.mail.password=xxxspring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.starttls.enable=truespring.mail.properties.mail.smtp.starttls.required=truespring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory### 调度中心通讯TOKEN [选填]:非空时启用;xxl.job.accessToken=### 调度中心国际化配置 [必填]: 默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;xxl.job.i18n=zh_CN## 调度线程池最大线程配置【必填】xxl.job.triggerpool.fast.max=200xxl.job.triggerpool.slow.max=100### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能;xxl.job.logretentiondays=30

以上配置重点关注jdbc数据库连接相关的内容,比如修改数据库用户名密码,以及报警邮箱相关配置,这里就不再详细展开,大家根据自己的需求配置修改即可。

3.2:部署调度中心项目

在idea中可以直接启动运行该项目,如果已经正确进行上述配置,运行成功会打印如下日志:

10:13:54.594 logback [main] INFO  o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '/xxl-job-admin'10:13:54.606 logback [main] INFO  c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 2.167 seconds (JVM running for 3.881)10:13:59.003 logback [xxl-job, admin JobScheduleHelper#scheduleThread] INFO  c.x.j.a.c.thread.JobScheduleHelper - >>>>>>>>> init xxl-job admin scheduler success.

然后浏览器访问调度中心访问地址:http://localhost:8080/xxl-job-admin(该地址执行器将会使用到,作为回调地址)

默认登录账号[] &ldquo[];admin[]/12345[]6&rdqu[]o;, 登录后运行界[]面如下图所示[]

如何快速搭建xxl-job项目详解

如果要上线部[]署,可将项目[]编译打包部署[]即可。以上,[]我们就将任务[]调度中心集成[]好了。

另外补充说明以下两点:

3.3 调度中心集群(可选):

调度中心支持集群部署,提升调度系统容灾和可用性。

调度中心集群部署时,几点要求和建议:

  • DB配置保持一致;
  • 集群机器时钟保持一致(单机集群忽视);
  • 建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。

3.4 其他:Docker 镜像方式搭建调度中心:

参考文章《docker如何部署xxl-job调度中心》

第4步: 配置部署“执行器项目”

“执行器”项目其实就是我们下载源码中的:xxl-job-executor-samples项目,这里面有两个“执行器”项目,分别为xxl-job-executor-sample-frameless和xxl-job-executor-sample-springboot。

xxl-jo[]b提供2种版[]本执行器供选[]择,现以 spring[]boot 版本为例,可[]直接使用,也[]可以参考其并[]将现有项目改[]造成执行器。[]

顺便说下执行器项目作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。

4.1:部署执行器项目

我们使用idea打开xxl-job-executor-samples项目,注意application.properties中xxl.job.admin.addresses配置,调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行”执行器心跳注册”和”任务结果回调”;为空则关闭自动注册;我们这里默认和之前调度中心地址一致即可。

xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

然后直接运行xxl-job-executor-springboot项目,发现启动成功。

4.2:测试执行定时任务

接下来,我们测试执行系统默认定时任务,打开调度中心页面,在任务管理中,执行一次,如下图:

如何快速搭建xxl-job项目详解

我们发现在xxl-job-executor-springboot项目中,打印了如下信息:

10:43:54.772 logback [Thread-8] INFO  com.xxl.job.core.server.EmbedServer - >>>>>>>>>>> xxl-job remoting server start success, nettype = class com.xxl.job.core.server.EmbedServer, port = 999910:47:23.505 logback [xxl-job, EmbedServer bizThreadPool-303137862] INFO  c.x.job.core.executor.XxlJobExecutor - >>>>>>>>>>> xxl-job regist JobThread success, jobId:1, handler:com.xxl.job.core.handler.impl.MethodJobHandler@344426bf[class com.xxl.job.executor.service.jobhandler.SampleXxlJob#demoJobHandler]10:49:06.782 logback [xxl-job, JobThread-1-1700189243505] INFO  com.xxl.job.core.thread.JobThread - >>>>>>>>>>> xxl-job JobThread stoped, hashCode:Thread[xxl-job, JobThread-1-1700189243505,10,main]

查看调度日志查看发现调度成功:

如何快速搭建xxl-job项目详解

总结

当然你也可以将下载的整个项目源码导入idea,分别修改配置,然后运行以上的两个子项目,就可以进行搭建测试了。

如果你想将调[]度执行项目集[]成到自己的s[]pringb[]oot项目中[]该如何去实现[]呢?具体的请[]参考文章《S[]pringB[]oot如何集[]成整合xxl[]-job任务[]调度框架》。[]

以上就是快速搭建搭建xxl-job项目详解的全部内容,希望对你有帮助。


    版权归属: noBug
    本文链接: https://wucuo.com/post/45
    相关推荐

    评论区

    评论头像