五分钟体验分布式调度框架xxl-job

sw


XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

本教程主要介绍怎么在springboot工程中快速使用xxl-job。详细的xxl-job的使用文档请参考:

简介

在xxl-job中,有2个角色:

一个是调度任务管理系统,xll-job-admin

另一个是xxl-job-excutor,通常是我们业务系统,比如本案例的springboot业务系统。

整个调度任务执行流程如下:

Xxl-job-admin官方代码已经写好,不做定制化开发的话,直接启动即可正常运行。启动Xxl-job-admin工程。

xxl-job-excuotr需要配置xxl-job-admin的地址,主动向Xxl-job-admin注册,并建立netty连接。在xxl-job-excutor中需要实现excutor的业务代码。


xxl-job-admin

Xxl-job-admin是调度任务的管理中心。所有的excutor都会向xxl-job-admin注册,注册完成之后可以对excutor进行任务分发。

在官网中下载最新的release代码,比如本文中的版本,下载地址为。

Xxl-job-admin需要Mysql数据库,请提前准备安装好。然后在数据库中导入代码工程中的doc/sql目录下的sql文件。

然后修改xxl-job-admin工程中的resources中的的数据库配置,如下:

=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=truecharacterEncoding=UTF-8autoReconnect=trueserverTimezone=Asia/==123456=

修改之后,启动XxlJobAdminApplication的main函数,xxl-job-admin启动成功。

在浏览器上访问http://localhost:8081/xxl-job-admin/,登陆用户名为admin,密码为123456。登陆成功后,显示的界面如下:


xxl-job-excutor

xxl-job-excutor是任务的执行单元,需要在业务系统中去实现。本案例中是一个springboot的工程,此工程需要集成xxl-job作为任务执行单元。在工程的文件中引入xxl-job-core的依赖如下:

/groupIdartifactIdxxl-job-core//version/depency

在工程的中配置的地址,配置含义见注释,具体配置如下:

=classpath:#xxl-jobadminaddresslist,suchas"http://address"or"http://address01,http://address02"=

需要初始化一个XxlJobSpringExecutor,该类用于处理xxl-job-admin和xxl-job-excutor之间的通讯以及任务的处理。

@ConfigurationpublicclassXxlJobConfig{privateLoggerlogger=();@Value("${}")privateStringadminAddresses;@Value("${}")privateStringaccessToken;@Value("${}")privateStringappname;@Value("${}")privateStringaddress;@Value("${}")privateStringip;@Value("${}")privateintport;@Value("${}")privateStringlogPath;@Value("${}")privateintlogRetentionDays;@BeanpublicXxlJobSpringExecutorxxlJobExecutor(){("xxl-jobconfiginit.");XxlJobSpringExecutorxxlJobSpringExecutor=newXxlJobSpringExecutor();(adminAddresses);(appname);(address);(ip);(port);(accessToken);(logPath);(logRetentionDays);returnxxlJobSpringExecutor;}}

注册一个任务,任务名为demoJobHandler。

@ComponentpublicclassSampleXxlJob{privatestaticLoggerlogger=();/***1、简单任务示例(Bean模式)*/@XxlJob("demoJobHandler")publicReturnTStringdemoJobHandler(Stringparam)throwsException{("XXL-JOB,HelloWorld.");("XXL-JOB,:"+param);for(inti=0;i5;i++){("beatat:"+i);(2);};}}

在xxl-job-admin中可以看到demoJobHandler的配置,在控制台启动任务。


启动任务后,可以看到执行任务的日志。同时在xxl-job-excutor中可以看到任务执行的业务日志。

源码下载

文章版权声明:除非注明,否则均为纵投光影网原创文章,转载或复制请以超链接形式并注明出处。

上一个 晶合光电Micro-LED和DLP投影大灯亮相ALE 2025

下一个 75寸电视长宽多少厘米?75寸电视最佳观看距离?25年75寸电视推荐