【含完整代码】Java定时任务之xxl | 您所在的位置:网站首页 › 如何使用fiverr发布任务 › 【含完整代码】Java定时任务之xxl |
前言
个人博客:www.wdcdbd.com 在Java中使用定时任务是一件很常见的事情,比如使用定时任务在什么时间,什么时候,去发布一些信息,或者去查询一些日志等相关的代码。这时,我们就要开发定时任务这中功能来实现此案例。而Java常见的定时任务一般有6种,JDK自带Timer实现,Quartz框架集成实现,spring自带的Spring Task等 剩下的就不说了,具体想要了解可以去百度搜索,而今天要讲的是Java定时任务神器: xxl-Job——轻量级分布式任务调度平台。 XXl-Job开源xxl-job: https://gitee.com/xuxueli0323/xxl-job XXL-JOB是一个轻量级分布式任务调度平台。特点是平台化,易部署,开发迅速、学习简单、轻量级、易扩展。由调度中心和执行器功能完成定时任务的执行。调度中心负责统一调度,执行器负责接收调度并执行。 因为此文章是针对小白来讲述的,所以会使用大量的图片和代码,以便讲的更加详细,易懂,所以会有很多小废话。话不多说,直接上代码讲解。 一、Gitee下载开源框架XXl-job 1、拉取xxl-job代码首先去上述的gitee拉取开源的xxl-job代码,千万不要选择master分支,要选择稳定的版本,这里我选择2.2.0来做演示。 去自己的idea中拉取gitee 拉取好之后,就是下述图片的样式,其中最主要的内容就是admin,等到最后,我会单独讲解xxl-job框架中所有的相关内容都是什么意思。现在先按照步骤做即可 xxl-job共分为3大部分:任务调度器平台、任务执行器、任务处理器(jobHandler)、 任务调度器平台: 就是上述拉取下来的代码中的xxl-job-admin项目,这个项目就是任务调度平台。我们只需要配置一下就可以有自己的一个平台环境。而这个人任务调度器平台我们就可以理解为eureka(注册中心) 任务执行器:执行任务处理器 任务处理器(jobHandler):通过自己在项目中自定义不同的任务处理器来让任务执行器执行,并通过调度器平台 处理不同的任务。 现在看不懂没事,等后续搭建起来之后,你就会全部理解。 三、搭建任务调度器平台 1、任务调度器平台 1.1、创建xxl-job-admin数据库将这个.sql文件创建到你的数据库中,这个应该都会创建,数据库名字要为xxl_job防止不必要的错误。其实里边已经帮你写好了,这里我就以Navicat为例引入.sql文件 将.sql复制粘贴到桌面,然后通过Navicat引入即可。 首先去xxl-job-admin找到配置文件,并修改port、mysql、mail、xxl.job.accessToken 修改port 修改mysql 修改mail 邮箱的账号密码不知道的去百度搜索:java配置mail 修改 xxl.job.accessToken 这个accessToken可以理解为秘钥,后面会在你自己的项目中配置和他名字一模一样的秘钥,让你的项目与任务调度器平台互相关联起来。这里我就不做修改了,使用默认的,可以自定义。 1.3、配置logback.xml路径可以自定义,我就放到我习惯的位置,你也可以放到你自己习惯的位置 在linux中先创建好自己的路径日志,然后赋权限,下面的命令,是给文件赋权限的 chmod -R 777 /home/dblog/xxl-job/xxl-job-admin.log配置好之后,用idea打包,并将jar在linux中运行。 1.4.1、修改jar名称 我将xxl-job-admin-2.4.1-SNAPSHOT放到自己习惯的位置并修改了名称(个人习惯),不修改也可以。 #将jar通过后台进程启动,并将启动信息指向xxl-job-admin.log中 nohup java -jar xxl-job-admin.jar > xxl-job-admin.log 2>&1 & #查看日志 tail -f xxl-job-admin.log
账号:admin ;密码:123456 好的!以上就是搭建好的xxl-job的调度器平台了,现在我们只需要在自己的项目中引入xxl-job依赖,然后配置一些东西,就可以在这个任务调度器平台来操作定时任务啦!!! 四、sprintboot引入xxl-job 1、引入xxl-job-core依赖在自己的项目中引入xxl-job-core依赖;只需引入这一个依赖就行 com.xuxueli xxl-job-core 2.3.1 2、配置yaml在自己的项目中配置yaml xxl: job: admin: # 调度中心服务部署的地址 addresses: http://192.168.139.110:9000/xxl-job-admin # 执行器通讯TOKEN,要和调度中心服务部署配置的accessToken一致,要不然无法连接注册 accessToken: default_token executor: # 执行器AppName appname: job-demo # 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。 address: ip: 192.168.139.110 #执行器端口号:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口; port: 9999 # 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径; logpath: /home/dblog/log/jobhandler # 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能; logretentiondays: 30注意!!!!: logpath执行日志存储位置,也是需要自己在linux中创建的,和上述任务调度器平台创建一样,创建完成之后,设置权限。 3、配置日志去你拉取的xxl-job项目中找到 logback.xml,复制到你自己项目的位置 复制到自己的项目中 在linux创建,并且给权限,这个就偷下懒不写了,在任务调度平台中已经写过了,可以模仿写一下。 4、编写配置类原封不动复制粘贴到你项目的位置就行即可,我一般习惯放到config下。这个配置类其实是可以在xxl-job项目中找到的。 xxl-job项目中的XxlJobConfig 上述的配置类代码,其实就是这个xxl-job项目中的XxlJobConfig 一模一样。 将xxl-job中的SampleXxlJob复制到自己的项目中 全部配置好之后,将自己的项目打包并部署到linux中,可以看到我的项目已经起来了。 接下来,就要去操作任务调度器平台了,来设置定时任务。 五、操作任务调度器平台(任务调度中心) 1、新增执行器注意:自动注册,xxl-job会自动找到你的机器地址。 也就是你上述在自己项目中配置的执行器ip和端口号,如果你的机器地址为无,那么就手动注册。 2、新增任务处理器JobHandler来源 自己项目代码中自定义的名称。 ![]() 启动完成之后,你可以去linux,查看你刚才打印的信息,如果出现则代表成功。 还可以看调度日志 好啦!!以上就是xxl-job的使用啦,哇,深夜2点爆肝的,呜呜呜。希望各位看完之后,能够快速提升自己的实力吧。加油! 附加-运行模式: BEAN模式Bean模式任务,支持基于方法的开发方式,每个任务对应一个方法。 优点:每个任务只需要一个方法,添加@XxlJob注解即可,方便、快速。 缺点:需要Spring环境 GLUE模式(Java)GLUE模式(Java) 任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。开发流程如下: 步骤一:调度中心,新建调度任务: 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 “GLUE模式(Java)”; 步骤二:开发任务代码: 选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。 其他模式:略 |
CopyRight 2018-2019 实验室设备网 版权所有 |