官方文档在这里:http://www.xuxueli.com/xxl-job/#/
看这类型框架,先去了解一下分布式和集群的概念。
先去https://gitee.com/xuxueli0323/xxl-job(码云)或者GitHub上把源码撸下来是没有错的,我这里是去码云上在idea开发环境clone下来的,完了,看文档
2.2编译源码,有源码结构,说的很清晰哦,说:xxl-job-admin:调度中心,,在往下看就知道调度中心的作用了。(具体部署接着下面文档看啊,我这边就说我的使用流程)所以,可以先启动调度中心,让xxl-job-admin这个项目跑起来,怎么跑?没有jetty的就用Tomcat跑,把调度中心项目打war包放到Tomcat webapp下(我没实际操作过听说的),我这边是配置的jetty嘛,
在xxl-job-admin下找到pom.xml,打开,先加入依赖,和其他类似的位置
<!-- jetty --> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>9.4.7.v20170914</version> <scope>test</scope> </dependency>
</dependencies>后面(换行)加入以下代码:
<build> <finalName>xxl-job</finalName> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.7.v20170914</version> <configuration> <!--<jvmArgs>-Xms128M -Xmx512M -XX:PermSize=120M -XX:MaxPermSize=120M</jvmArgs>--> <httpConnector> <port>8084</port> </httpConnector> <systemProperties> <systemProperty> <name>spring.profiles.active</name> <value>development</value> </systemProperty> </systemProperties> <useTestClasspath>true</useTestClasspath> <stopKey>foo</stopKey> <stopPort>8989</stopPort> <webAppConfig> <contextPath>/</contextPath> </webAppConfig> </configuration> </plugin> </plugins> </build>
看右侧,如下图:启动jetty(双击)
启动过程如发现端口有冲突,pom.xml刚刚配置改端口。启动成功。
本地访问localhost:8084,调度中心页面启动。
文档说:xxl-job-executor:执行器示例,看2.4章节 作用和建议,我们就用他说的xxl-job-executor-sample-spring这个好了,人家括号里说明了(可直接使用,也可以参考其并将现有项目改造成执行器),我就把这个项目考在自己的项目下跑啦,怎么考呢?如图,这两个文件,修修改改到自己的项目的配置文件里啊。配置里面的执行器的一些配置其实就是你调度中心,执行器管理里面新增的数据参数哦。再就是把DemoJobHandler这个考到自己的项目下,我是拷到项目的service下的了。然后跑自己的项目,(还有一个很重要,在文档1.4下说中央仓库地址,请把这个引入自己项目的pom.xml下吧);
启动自己项目,处理报错异常,直到启动成功!地址栏输入自己的ip:9998(配置里默认的)
执行器成功了!
再回到调度中心,任务管理,新增任务,测试嘛,就默认,然后输入主要是JobHandler填demoJobHandler,注解里的value,如下图:
Cron*是什么?自行百度啊,我这里给一个一分钟执行一次的规则:0 0/1 * * * ? *
确定执行器任务管理和你的配置数据对应的,然后可以启动执行,是否成功查看调度日志,没有成功就排查错误吧,我这边操作流程就是这样的,最后是成功的,当然也遇到很多问题咯,调度中心文档也说了,关于数据库自己本地弄一个mysql数据库,连接的时候就连接本地的,流程就是这样,希望可以帮助一些第一次接触这些分布式框架的人