ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Springboot 整合xxl job

2021-10-11 09:05:29  阅读:187  来源: 互联网

标签:执行器 Springboot job 地址 executor com xxl


Springboot 整合xxl job

1.下载

​ Documentation
中文文档

​ 源码下载地址

​ https://github.com/xuxueli/xxl-job

2.调度中心xxl-job-admin
  • idea导入项目,在目标数据库中执行table_xxl_job.sql初始化xxl-job数据库。

    CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;
    use `xxl_job`;
    ................
    
  • 修改xxl-job-admin模块application.properties数据源信息

    ### xxl-job, datasource,链接地址请保持和所创建的调度数据库的地址一致
    spring.datasource.url=jdbc:mysql://116.62.246.132:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
    spring.datasource.username=root
    spring.datasource.password=*******
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
  • 如果已经正确进行上述配置,可将项目编译打包部署。

    调度中心访问地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址)

    默认登录账号 “admin/123456”, 登录后运行界面如下图所示。

3.在项目中创建自己的执行器

参照xxl-job项目中xxl-job-executor-sample-springboot模块在项目创建执行器。

  • 在项目中创建xxl-job-executor子模块

  • pom.xml文件中添加核心依赖

    <dependency>
         <groupId>com.xuxueli</groupId>
         <artifactId>xxl-job-core</artifactId>
         <version>2.3.0</version>
    </dependency>
    
  • 配置application.properties

    ### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
    xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
    ### 执行器通讯TOKEN [选填]:非空时启用;
    xxl.job.accessToken=
    ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
    xxl.job.executor.appname=xxl-job-executor-sample
    ### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
    xxl.job.executor.address=
    ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
    xxl.job.executor.ip=
    ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
    xxl.job.executor.port=9999
    ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
    xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
    ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
    xxl.job.executor.logretentiondays=30
    
  • 参照xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java,在项目中新增执行器config

     	@Bean
        public XxlJobSpringExecutor xxlJobExecutor() {
            logger.info(">>>>>>>>>>> xxl-job config init.");
            XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
            xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
            xxlJobSpringExecutor.setAppname(appname);
            xxlJobSpringExecutor.setAddress(address);
            xxlJobSpringExecutor.setIp(ip);
            xxlJobSpringExecutor.setPort(port);
            xxlJobSpringExecutor.setAccessToken(accessToken);
            xxlJobSpringExecutor.setLogPath(logPath);
            xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
    
            return xxlJobSpringExecutor;
        }
    
  • 创建TycXxlJob.java,编写jobhandler,springboot在方法上添加@XxlJob注解。

    @Component
    public class TycXxlJob {
    	/**
         * xxl-job test
         * @throws Exception
         */
        @XxlJob("yeyooJobHandler")
        public void yeyooJobHandler() throws Exception {
            XxlJobHelper.log("XXL-JOB, Economic Brain.");
            XxlJobHelper.log("xxl job test");
        }
    }
    
  • 如果已经正确进行上述配置,可将执行器项目编译打包部署执行器。

4.xxl-job新建任务
  • 登录xxl-job调度管理中心,http://ip:port/xxl-job-admin。

  • 点击执行器管理,新增执行器,AppName与配置文件xxl.job.executor.appname保持一致。

  • 点击任务管理,新增任务,执行器选择上一步新增的执行器,运行模式选BEAN,JobHandler填写yeyooJobHandler,对应TycXxlJob.java中的@XxlJob的value。

  • 在任务管理界面点击新增任务“操作”按钮,选择“执行一次”,测试任务调度。

  • 点击调度日志查看结果。

    2021-08-24 15:55:46 [com.xxl.job.core.thread.JobThread#run]-[130]-[Thread-368] 
    ----------- xxl-job job execute start -----------
    ----------- Param:
    2021-08-24 15:55:46 [com.yeyoo.tycIo.jobhandler.TycXxlJob#yeyooJobHandler]-[60]-[Thread-368] XXL-JOB, Economic Brain.
    2021-08-24 15:55:46 [com.yeyoo.tycIo.jobhandler.TycXxlJob#yeyooJobHandler]-[61]-[Thread-368] xxl job test
    2021-08-24 15:55:46 [com.xxl.job.core.thread.JobThread#run]-[176]-[Thread-368] 
    ----------- xxl-job job execute end(finish) -----------
    ----------- Result: handleCode=200, handleMsg = null
    2021-08-24 15:55:46 [com.xxl.job.core.thread.TriggerCallbackThread#callbackLog]-[197]-[xxl-job, executor TriggerCallbackThread] 
    ----------- xxl-job job callback finish.
    
5.其他项目引用
  • pom.xml文件添加依赖引入xxl-job-executor子模块

     <dependency>
          <groupId>com.xxx.xxx</groupId>
          <artifactId>xxl-job-executor</artifactId>
          <version>1.0-SNAPSHOT</version>
     </dependency>
    
  • application.yml配置文件添加执行器信息

    xxl:
      job:
        admin:
          addresses: http://127.0.0.1:8080/xxl-job-admin  # 调度中心部署地址 。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
    
        accessToken:                                      #执行器通讯TOKEN,非空时启用;
    
        executor:
          appname: yeyoo-xxl-job-executor-sample          #执行器AppName
          address:                                        #执行器注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。
          ip:                                             #执行器ip,为空表示自动获取IP。
          port: 9999                                      #执行器端口
          logpath: /data/applogs/xxl-job/jobhandler       #执行器运行日志文件存储磁盘路径
          logretentiondays: 30                            #执行器日志文件保存天数
    
    
  • 创建项目定时任务。

  • 登录xxl-job调度管理中心添加任务,设置cron表达式,启动定时任务。

标签:执行器,Springboot,job,地址,executor,com,xxl
来源: https://blog.csdn.net/winsanity/article/details/120696109

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有