SpringBoot集成xxljob 实现定时任务

刺骨的言语ヽ痛彻心扉 2024-04-20 22:08 231阅读 0赞

1.去gitee上拉取下来xxl-job项目

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

2.把项目中的sql文件在本地执行, 修改数据库配置

3.把config导入自己的项目中

  1. @Configuration
  2. public class XxlJobConfig {
  3. private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
  4. @Value("${xxl.job.admin.addresses}")
  5. private String adminAddresses;
  6. @Value("${xxl.job.accessToken}")
  7. private String accessToken;
  8. @Value("${xxl.job.executor.appname}")
  9. private String appname;
  10. @Value("${xxl.job.executor.address}")
  11. private String address;
  12. @Value("${xxl.job.executor.ip}")
  13. private String ip;
  14. @Value("${xxl.job.executor.port}")
  15. private int port;
  16. @Value("${xxl.job.executor.logpath}")
  17. private String logPath;
  18. @Value("${xxl.job.executor.logretentiondays}")
  19. private int logRetentionDays;
  20. //
  21. //
  22. // @Bean
  23. // public XxlJobSpringExecutor xxlJobExecutor() {
  24. // logger.info(">>>>>>>>>>> xxl-job config init.");
  25. // XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
  26. // xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
  27. // xxlJobSpringExecutor.setAppname(appname);
  28. // xxlJobSpringExecutor.setAddress(address);
  29. // xxlJobSpringExecutor.setIp(ip);
  30. // xxlJobSpringExecutor.setPort(port);
  31. // xxlJobSpringExecutor.setAccessToken(accessToken);
  32. // xxlJobSpringExecutor.setLogPath(logPath);
  33. // xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
  34. //
  35. // return xxlJobSpringExecutor;
  36. // }
  37. /**
  38. * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
  39. *
  40. * 1、引入依赖:
  41. * <dependency>
  42. * <groupId>org.springframework.cloud</groupId>
  43. * <artifactId>spring-cloud-commons</artifactId>
  44. * <version>${version}</version>
  45. * </dependency>
  46. *
  47. * 2、配置文件,或者容器启动变量
  48. * spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
  49. *
  50. * 3、获取IP
  51. * String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
  52. */
  53. }

4.导入配置

注意:记住这里这个appname

  1. xxl:
  2. job:
  3. admin:
  4. addresses: http://127.0.0.1:8080/xxl-job-admin
  5. accessToken: default_token
  6. executor:
  7. appname: demo
  8. address:
  9. ip:
  10. port: 9998
  11. logpath: /data/applogs/xxl-job/jobhandler
  12. logretentiondays: 30

5.启动xxl-job项目 执行器页面新增demo

你也可以取别的名字 但是这里要和上面的appname: 后面的对应

b86a40ac91c2426ebda7934513b378bc.png

" class="reference-link">6.创建任务79718591176b4bd6b73413d4159449c9.png

在这里面写你的任务 主义和JOBHANDLE 名字对应

  1. @Component
  2. public class AutoRefuseHandle {
  3. @XxlJob("autoRefuseHandle")
  4. public void autoRefuseHandle(){
  5. XxlJobHelper.log("当前执行时间:{}",new Date());
  6. try {
  7. }catch (Exception e){
  8. XxlJobHelper.log("删除失败:{}",e.getMessage());
  9. }
  10. }
  11. }

7.运行即可

发表评论

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

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

相关阅读