首页 > 其他 > 详细

xxl-job 任务管理

时间:2020-08-05 00:23:02      阅读:111      评论:0      收藏:0      [点我收藏+]

xxl-job(https://github.com/xuxueli/xxl-job) 系统的具体设计,可以参考官方文档,非常详细,这里只说一下大概的流程。 

1. 应用端通过继承类或者注解的方式,来标示一个类或者一个方法是一个job。 
2. 在应用启动的时候,会做3个事情:
     1. 扫描第一步的类或者方法,放入内存。 
     2. 启动一个内嵌的基于netty的http服务端。
     3. 将内嵌的服务端地址注册到调度中心。 
3. 服务端取获分布式锁(mysql 的for update,保证HA状态下的调度中心只有一个能执行),拿到锁之后扫描需要执行的job,计算下一次要执行的时间, 放入到一个ring,类似于一个时间轮,之后会有一个单独的线程从ring中拿到当前要执行的job进行触发执行,触发方式是通过一定的负载策略,调用上面第二步内嵌http服务器的地址。
4. 应用内的http服务端接收到请求,会放入到内存队列中,之后会有单独一个线程从队列中拿到要执行的job进行执行。 
 
我的注解版xxl-job: https://github.com/zhaoyb/xxl-job

 

xxl-job 任务管理

原文:https://www.cnblogs.com/beyondbit/p/13354557.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!