在这里下载源代码到本地,然后导入到idea,等待其构建完成,然后我们来切换到2.0.2
版本进行后续操作。
将doc/db/tables_xxl_job.sql
数据库脚本在数据库中执行即可完成数据库初始化的工作。
修改xxl-job-admin/src/main/resources/application.properties
文件,将其中的db配置修改为自己本地的信息即可。
这是一个标准的springboot程序,可以直接通过xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java
启动应用,当然可以以jar,或者war的形式来运行,这个后边再说。启动后通过地址http://127.0.0.1:8080/xxl-job-admin/
访问,默认用户密码为admin/123456
是在xxl-job-admin/src/main/resources/application.properties
中配置的,登录后如下图:
我们使用的是springboot的方式来定义执行器,其中源码在这里下载源代码。
# web port
server.port=8084
### xxl-job admin的地址,用来注册自己的信息
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### APPName,这里需要先通过xxl-job admin手动添加
xxl.job.executor.appname=xxl-job-executor-dongshidaddy
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9991
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;
xxl.job.executor.logretentiondays=-1
注意其中的xxl.job.executor.appname=xxl-job-executor-dongshidaddy
需要先在xxl-job admin后台进行手动添加,如下:
dongshi.daddy.config.XxlJobConfig
@Configuration
public class XxlJobConfig {
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appname}")
private String appName;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean(initMethod = "start", destroyMethod = "destroy")
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppName(appName);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
通过类dongshi.daddy.TestDebugRemoteTomcatApplication
启动,启动后,查看xxl-job admin后台,如下,可以看到执行器的在线机器已经增加了一台了:
在idea中通过Edit Configurations
再增加一个应用程序,主函数依然是dongshi.daddy.TestDebugRemoteTomcatApplication
,然后修改配置文件中的端口号server.port
,xxl.job.executor.port
(执行器通信使用),保证端口号不冲突,再来注册一个执行器实例,完成后启动,如下,可以看到增加了一个在线的实例:
@JobHandler(value = "demoJobHandler")
@Component
public class DemoJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
System.out.println("demoJobHandler run param is: " + param);
XxlJobLogger.log("XXL-JOB, Hello World→ → → →.");
for (int i = 0; i < 2; i++) {
XxlJobLogger.log("beat at:" + i);
TimeUnit.SECONDS.sleep(2);
}
return SUCCESS;
}
}
如下是后台调用日志:
demoJobHandler run param is: i a param aaaaaaa!!!!!!!
demoJobHandler run param is: i a param aaaaaaa!!!!!!!
demoJobHandler run param is: i a param aaaaaaa!!!!!!!
demoJobHandler run param is: i a param aaaaaaa!!!!!!!
通过如下打出jar包:
这里注意修改端口号,不要和之前的冲突,然后通过java -jar
运行即可:
xbdeMacBook-Air:temp xb$ java -jar xxl-job-admin-2.0.2.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.20.RELEASE)
...
10:00:25.634 logback [main] INFO o.s.b.c.e.t.TomcatEmbeddedServletContainer - Tomcat started on port(s): 8078 (http)
10:00:25.646 logback [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 11.077 seconds (JVM running for 12.799)
直接启动多个实例,然后挂上nginx等负责复杂均衡就可以了,但是注意要共用一个mysql数据库
。