xxljob在项目中的使用

迈不过友情╰ 2023-01-01 10:53 322阅读 0赞

1:下载源代码

在这里下载源代码到本地,然后导入到idea,等待其构建完成,然后我们来切换到2.0.2版本进行后续操作。

2:数据库操作

2.1:数据库初始化

doc/db/tables_xxl_job.sql数据库脚本在数据库中执行即可完成数据库初始化的工作。

2.2:修改db配置

修改xxl-job-admin/src/main/resources/application.properties文件,将其中的db配置修改为自己本地的信息即可。

3:启动

这是一个标准的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中配置的,登录后如下图:
在这里插入图片描述

4:定义执行器

我们使用的是springboot的方式来定义执行器,其中源码在这里下载源代码。

4.1:定义配置文件

  1. # web port
  2. server.port=8084
  3. ### xxl-job admin的地址,用来注册自己的信息
  4. xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
  5. ### APPName,这里需要先通过xxl-job admin手动添加
  6. xxl.job.executor.appname=xxl-job-executor-dongshidaddy
  7. ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
  8. xxl.job.executor.ip=
  9. ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
  10. xxl.job.executor.port=9991
  11. ### 执行器通讯TOKEN [选填]:非空时启用;
  12. xxl.job.accessToken=
  13. ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
  14. xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
  15. ### 执行器日志保存天数 [选填] :值大于3时生效,启用执行器Log文件定期清理功能,否则不生效;
  16. xxl.job.executor.logretentiondays=-1

注意其中的xxl.job.executor.appname=xxl-job-executor-dongshidaddy需要先在xxl-job admin后台进行手动添加,如下:
在这里插入图片描述

4.2:定义执行器配置类

  1. dongshi.daddy.config.XxlJobConfig
  2. @Configuration
  3. public class XxlJobConfig {
  4. private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
  5. @Value("${xxl.job.admin.addresses}")
  6. private String adminAddresses;
  7. @Value("${xxl.job.executor.appname}")
  8. private String appName;
  9. @Value("${xxl.job.executor.ip}")
  10. private String ip;
  11. @Value("${xxl.job.executor.port}")
  12. private int port;
  13. @Value("${xxl.job.accessToken}")
  14. private String accessToken;
  15. @Value("${xxl.job.executor.logpath}")
  16. private String logPath;
  17. @Value("${xxl.job.executor.logretentiondays}")
  18. private int logRetentionDays;
  19. @Bean(initMethod = "start", destroyMethod = "destroy")
  20. public XxlJobSpringExecutor xxlJobExecutor() {
  21. logger.info(">>>>>>>>>>> xxl-job config init.");
  22. XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
  23. xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
  24. xxlJobSpringExecutor.setAppName(appName);
  25. xxlJobSpringExecutor.setIp(ip);
  26. xxlJobSpringExecutor.setPort(port);
  27. xxlJobSpringExecutor.setAccessToken(accessToken);
  28. xxlJobSpringExecutor.setLogPath(logPath);
  29. xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
  30. return xxlJobSpringExecutor;
  31. }
  32. }

4.3:启动

通过类dongshi.daddy.TestDebugRemoteTomcatApplication启动,启动后,查看xxl-job admin后台,如下,可以看到执行器的在线机器已经增加了一台了:
在这里插入图片描述
在idea中通过Edit Configurations再增加一个应用程序,主函数依然是dongshi.daddy.TestDebugRemoteTomcatApplication,然后修改配置文件中的端口号server.port,xxl.job.executor.port(执行器通信使用),保证端口号不冲突,再来注册一个执行器实例,完成后启动,如下,可以看到增加了一个在线的实例:
在这里插入图片描述

5:定义任务

5.1:定义任务

  1. @JobHandler(value = "demoJobHandler")
  2. @Component
  3. public class DemoJobHandler extends IJobHandler {
  4. @Override
  5. public ReturnT<String> execute(String param) throws Exception {
  6. System.out.println("demoJobHandler run param is: " + param);
  7. XxlJobLogger.log("XXL-JOB, Hello World→ → → →.");
  8. for (int i = 0; i < 2; i++) {
  9. XxlJobLogger.log("beat at:" + i);
  10. TimeUnit.SECONDS.sleep(2);
  11. }
  12. return SUCCESS;
  13. }
  14. }

5.2:添加任务

如下图:
在这里插入图片描述

5.3:查看任务执行

如下是后台调用日志:

  1. demoJobHandler run param is: i a param aaaaaaa!!!!!!!
  2. demoJobHandler run param is: i a param aaaaaaa!!!!!!!
  3. demoJobHandler run param is: i a param aaaaaaa!!!!!!!
  4. demoJobHandler run param is: i a param aaaaaaa!!!!!!!

查看xxl后台日志:
在这里插入图片描述
在这里插入图片描述

6:以jar包方式运行

通过如下打出jar包:
在这里插入图片描述
这里注意修改端口号,不要和之前的冲突,然后通过java -jar运行即可:

  1. xbdeMacBook-Air:temp xb$ java -jar xxl-job-admin-2.0.2.jar
  2. . ____ _ __ _ _
  3. /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
  4. \\/ ___)| |_)| | | | | || (_| | ) ) ) )
  5. ' |____| .__|_| |_|_| |_\__, | / / / /
  6. =========|_|==============|___/=/_/_/_/
  7. :: Spring Boot :: (v1.5.20.RELEASE)
  8. ...
  9. 10:00:25.634 logback [main] INFO o.s.b.c.e.t.TomcatEmbeddedServletContainer - Tomcat started on port(s): 8078 (http)
  10. 10:00:25.646 logback [main] INFO c.x.job.admin.XxlJobAdminApplication - Started XxlJobAdminApplication in 11.077 seconds (JVM running for 12.799)

然后访问测试:
在这里插入图片描述

7:admin的集群部署

直接启动多个实例,然后挂上nginx等负责复杂均衡就可以了,但是注意要共用一个mysql数据库

发表评论

表情:
评论列表 (有 0 条评论,322人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Xxljob介绍

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

    相关 gulp项目使用

    在之前的文章中,已经详细的讲述了怎么安装gulp,它的工作过程,然后现在来谈谈项目中的具体使用。 入门教程 [http://blog.csdn.net/liuwenga