XXL-JOB 由调度中心,执行器, 任务组成。

执行器中存放若干任务,具体执行哪些任务由执行器决定。

调度中心实现对执行器的调度。

 

怎么配置环境? 我试了好久,终于摸清了套路。首先,这个框架是给微服务设计的,也就意味着他和eurake差不多,都需要一个服务中心的玩意对我们的诸多服务提供注册监听的服务。

我从github下了 源码, 果然,源码里有个叫admin的项目, 这个项目就是“调度中心” , 负责统一管理任务调度。 我们要做的就是 启动运行这个xxl-job-admin服务, 然后把我们自己的服务中的任务注册到xxl-job-admin中。 xxl-job-admin服务为我们提供了一个web端界面,我们可以使用界面定义配置我们的任务。

这个框架用起来非常简单,官网的文档写的非常直白, 顺序看下来就能懂个大半。 唯一的缺点是xxl-job用的是mysql数据库。对于pgsql数据库不适用,要改,光从数据库还不行,他代码里的model也不能用。因为mysql的语句 在单词前后加了~ , 这个符号pgsql没有。所以项目跑不起来。自己用pgsql搭到一半就放弃了。

我来说说自己的搭建过程的心得。

我们的服务注册执行器的时候,xxl.job.executor.appname是在web界面配置的执行器名称。 框架按照这个名称对我们的服务进行分组。 假设我们有两个服务A 和B ,用的是同一个xxl.job.executor.appname,就意味着服务A和B都注册在了同一个执行器。 如果两个服务都在本机的话,要保证端口不同。

触发配置:
    - 调度类型:
        无:该类型不会主动触发调度;
        CRON:该类型将会通过CRON,触发任务调度;
        固定速度:该类型将会以固定速度,触发任务调度;按照固定的间隔时间,周期性触发;
        固定延迟:该类型将会以固定延迟,触发任务调度;按照固定的延迟时间,从上次调度结束后开始计算延迟时间,到达延迟时间后触发下次调度;

固定速度: 是指每隔固定时间调度一次任务。假如现在是2:00 ,每隔5分钟执行一次任务。 一次任务的执行时间是2个小时。 那么固定速度的执行时间是:2:05  2:10  2:15 。。。。 不论任务有没有执行完成,每隔5分钟都会进行一次任务调度。

固定延迟:执行时间会是-》2:05  4:10   6:15 , 是先执行一次任务, 等这个任务完成后,延迟5分钟再次进行任务调度。

调度类型是无就以为着这个任务要手动调度。

高级配置:
    - 路由策略:当执行器集群部署时,提供丰富的路由策略,包括;
        FIRST(第一个):固定选择第一个机器;
        LAST(最后一个):固定选择最后一个机器;
        ROUND(轮询):;
        RANDOM(随机):随机选择在线的机器;
        CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。
        LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举;
        LEAST_RECENTLY_USED(最近最久未使用):最久未使用的机器优先被选举;
        FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度;
        BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;
        SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务;

当一个执行器中注册了多台机器时(127.0.0.1:9999 , 127.0.0.1:9998 , 127.0.0.1:9997)

轮询策略:任务轮番分配给三台机器。 第一次调度时让9999的机器去执行, 第二次调度时让9998的机器去执行, 第三次调度时让9997的机器去执行, 第四次调度时让9999的机器去执行。

随机: 注意是随机选择 在线 的机器。

调度失败发送邮件的情况我理解的是指:

(1)任务调度失败        (2)调度成功,执行任务时抛出异常导致任务中断

这两种情况都会发送邮件。或者说,只要是调度日志中  执行结果 为 失败的情况, 都会发送邮件。

从列表中可以看到, 有 调度结果  和  执行结果两种。 这两种哪一种不成功都会发送邮件。

 

其他的官方文档都说的很详细了。 这个东西真的太好用了 。

官方文档地址! 推荐推荐!

GitHub 加速计划 / xx / xxl-job
27.16 K
10.79 K
下载
xxl-job: 是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。
最近提交(Master分支:3 个月前 )
e5d26ba2 - 4 个月前
977ad87b - 4 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐