• 【转载】分布式任务调度平台Xxl-job简介


    来源:https://www.cnblogs.com/jasonzeng/p/12498443.html
    一、学习XXL-job之前,先了解一下什么是xxl-job;
    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
    官方地址中文版:http://www.xuxueli.com/xxl-job
    
    Quartz作为开源作业调度中的佼佼者,是作业调度的首选。集群环境中Quartz采用API的方式对任务进行管理,Quartz存在以下问题:
    问题一:调用API的的方式操作任务,不人性化;
    问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。
    问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况加,此时调度系统的性能将大大受限于业务;
    问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;而XXL-JOB通过执行器实现“协同分配式”运行任务,充分发挥集群优势,负载各节点均衡。
    XXL-JOB弥补了quartz的上述不足之处。
    
    二、环境准备
    在准备xxl-job环境之前先了解一下docker,因为xxl-job我是依赖于docker环境安装的,当然也可以采用传统方式安装;不过我还是觉得docker比较方便,不污染环境。具体安装方法有很多,由于不是本文猪脚,就不在此赘述;
    通过docker命令拉取xxl-job-admin的镜像:
    docker pull xuxueli/xxl-job-admin:2.1.2
    执行docker run启动container
    docker run –e                                         
    PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=数据库用户名 --spring.datasource.password=数据库密码" -p 映射主机的端口:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d 镜像ID
    
    命令的PARAMS是作者给的参数名称,具体需要了解Dockfile的编写
    启动之后可以访问job-admin任务管理后台,界面如下:
     
    
    三、任务使用
    1.在需要使用任务的项目中引入maven依赖
    <dependency>
        <groupId>com.xuxueli</groupId>
        <artifactId>xxl-job-core</artifactId>
        <version>2.1.2</version>
    </dependency>
    2.添加yml配置
    ---
    #xxl-job
    ### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
    xxl.job.admin.addresses: http://之前部署服务器地址:8085/xxl-job-admin
    ### xxl-job executor address
    xxl.job.executor.appname: xxl-job-executor-sample
    xxl.job.executor.ip:
    xxl.job.executor.port: 9999
    ### xxl-job, access token
    xxl.job.accessToken:
    ### xxl-job log path
    xxl.job.executor.logpath: /data/applogs/xxl-job/jobhandler
    ### xxl-job log retention days
    xxl.job.executor.logretentiondays: 30
    
    3.代码编写我们的任务执行器
     
    4.使用管理后台创建执行器,
     
    5.创建要执行的任务
     
    选择之前我们创建的执行器,java一般是bean模式,与代码中的bean相同即可,输入cron表达式,跟@ Scheduled和quartz类似。保存后启动任务即可。如果再分布式项目中可以把执行器单独抽取一个服务,这样也能体现出xxl-job在分布式架构下的完美表现。这仅仅只是它的最基本使用方法,具体有多强大就需要你去发现了。
    -----------------------------------------Have a good day!---------------------------------------------------------------------------------------------------
  • 相关阅读:
    js float浮点数计算精度问题
    NLB多WEB站点访问共享文件解决方案
    Flash文件跨域访问
    博客地址
    在Ubuntu上安装Mysql
    Ajax调用NPOI导出Excel报表
    在Ubuntu上安装Mongodb
    获取月份的周时间段
    sql表结构和注释
    Highcharts使用指南
  • 原文地址:https://www.cnblogs.com/ww-xiaowei/p/14648568.html
Copyright © 2020-2023  润新知