另外我可没有标题党,我看了一下GitHub上开源的分布式调度系统,目前是xxl-job项目是分布式调度开源系统中最多starts的(当然也有可能因为这个xxl-job出来挺久了)
如果为window,mac等安装,可以先根据github上的SQL脚本创建好数据库和表,然后直接将github上的源码导入到idea按照SpringBoot应用来启动即可。
如果为docker的安装,可以直接pull官方镜像,然后运行时指定MySQL和存储日志目录即可。
下载镜像
#如需自定义mysql等配置,可通过"-ePARAMS"指定,参数格式PARAMS="--key=value--key2=value2";#配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties#如需自定义JVM内存参数等配置,可通过"-eJAVA_OPTS"指定,参数格式JAVA_OPTS="-Xmx512m";dockerrun-ePARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_jobuseUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai"-p8080:8080-v/tmp:/data/applogs--namexxl-job-admin-dxuxueli/xxl-job-admin:{指定版本}linuxUbuntu16.04安装xxl-job在linux下直接安装xxl-job会有点麻烦,因为xxl-job并没有像nacos之类的直接提供了一个启动包,直接修改一下配置文件,然后运行启动脚本即可那种。xxl-job是只提供了的源码文件,如果要运行,需要自己先将java源码通过maven打包构建成运行包,然后才能运行。所以接下来我来详细讲述一下如何在linux下安装启动xxl-job,这里使用的linux版本为:Ubuntu16.04。其他版本也类似。
安装有两种一种是直接根据apt的包安装,另一种是手动获取java包安装。这里我们为了简单起见使用apt直接安装,如果需要更多自定义的配置可以手动安装。执行运行以下两个命令即可安装jdk8版本的。
sudoapt-getupdatesudoapt-getinstallopenjdk-8-jdk-y参考:Ubuntu16.04安装JavaJDK8
我们这里也直接采用apt包的安装
sudoapt-get-yupdatesudoaptinstallmaven-y待安装完成之后,运行
mvn-v即可检查是否安装成功了
这里安装了maven之后还需要将maven的默认的远程仓库地址换成国内的远程仓库地址,不然下载maven依赖的时候会很慢。打开/etc/maven/settings.xml文件,在标签里面添加以下内容,即可将默认仓库替换成阿里云的仓库。
sudoapt-get-yupdatesudoapt-getinstallgit-y安装数据库初始化数据库的脚步为xxl-job的git项目中的/xxl-job/doc/db/tables_xxl_job.sql的文件,在已经安装了MySQL的机器上连接上,然后执行即可
默认xxl-job是支持集群部署的,只要连接相同的数据库即可
另外如果MySQL有做主从部署,则xxl-job连接的一定要为主库,也不能使用读写分离的账号,否则在调度的时候可能会出现问题
安装完成调度中心之后,我们还需要安装执行器项目,调度中心本身是不负责执行项目,要安装执行器之后,才能通过调度中心去执行器服务上执行。安装执行器项目很简单,基本上就是安装调度中心那样安装启动即可,我们这里为了简单起见,可以直接启动xxl-job自带SpringBoot的简单执行器。基于上面克隆下来的项目,我们进入/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target目录。如果要修改调度中心的地址的信息、调度中心的验证的key等,可以修改配置文件,该执行器的配置文件为/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/BOOT-INF/classes/application.properties。
然后执行以下命令即可启动执行器项目:
这里填写的是调度任务的基本信息,例如:任务失败的时候重试的次数,该任务的负责人、应该依赖的上一个任务id。
在弹出的新建任务的窗口,按照如下填写:
我们可以通过xxl-job自带的IDE来编辑我们需要运行的shell脚本。
按照上面填写好任务的基本信息后,我们接着来编辑要执行的任务脚本,
点击保存,然后返回任务列表,启动该任务。然后就可以到"调度日志"页面,查看该任务的执行记录了,点击具体运行的某个实例的“查看日志”能看到该实例执行记录的详细日志信息。
总而言之,对于绝大部分中小公司的调度任务或者是比较简单的调度任务用xxl-job是完全没有问题的。如果是要作为企业级系统来使用估计还需要基于xxl-job来修改挺多模块的。最后,还是挺感谢xxl-job能开源,对于我平常用来管理一下自己的调度任务也很不错。