taobao / tbschedule Goto Github PK
View Code? Open in Web Editor NEW一个简洁的分布式任务调度引擎
一个简洁的分布式任务调度引擎
TBSchedule is a non-centralised, zookeeper adapted, console included, task/strategy supported and light-weight scheduling-in-place library from taobao(taobao.com). It was released as an open source project in about (2010~2012) by Taobao in the website http://code.taobao.org/p/tbschedule
(But it has been down in 2017), with no license given. And after that it seems that there is no further developing on it.
It's not a common distributed scheduling framework like ones support external shell, uploaded jars, cross languages and etc. Its main purpose is the scenarios of spring-quartz but don't settle for quartz's design of High Availability
and Clustering
. It's another choice to try with.
Project location(Under Apache® License): https://github.com/jasonjoo2010/tbschedule
It uses zookeeper
communicating with zookeeper server directly and sometimes suffers jitters on unstable connections. Surely only zookeeper storage is supported.
A console server is provided as a client tool to manage the strategies, tasks and do operations under specified namespace.
But there are problems in integrating:
Enhanced versions solve all the problem in traditional version and:
zookeeper
up to date.slf4j
as logging library.curator
. (4.0.x)com.yoloho.schedule
)So in 4.0.x you can use tbschedule easily (included in central repo) and logging friendly (slf4j) and more balanced (workers load balancing). If you implement queue consumer using Redis' list you can easily use tbschedule-extension-task
to do it.
But it's not the end.
For more adaptive
, it's not enough to support zookeeper only. It should change depend on what the project use. For example a redis/jdbc only project we should not have to introduce a zookeeper cluster for scheduling. And also we should provide easier ways to integrate like xml/annotations.
For more international
, we should make more documentation using english.
For more reliable
, we should write more unit tests.
For learn easily
, we should provide some demonstrations.
So that's why 4.1.x is raised.
Over half of codes have been restructured. SPI
is used to support different default
storage implementation and it also can be specified manually. Which means we can use multiple storages together in single project (If there's such scenario, eg. memory and zookeeper together).
Here are storages supported:
curator-framework
)enhanced-cache
)JDBC
is on the way.
In spring boot it's easy to initialize:
@EnableSchedule(
// Storage is zookeeper by default
address = "192.168.123.106:2181",
rootPath = "/test/demo/tmp",
username = "test",
password = "test"
)
And then you can raise a console
instance locally which has been packed and uploaded into maven central repository to manage the tasks and strategies.
Details please refer to: https://github.com/jasonjoo2010/tbschedule
It borns to be a light-weight and flexible scheduling and hope it could be a good choice on this.
Thanks to the Taobao's tbschedule
. Thanks to their spirit of open source. Thanks to Xuannan who has done most of the contribution of Taobao's tbschedule.
https://github.com/nmyphp/tbschedule
官方地址失效,尊重源码,持续更新维护中,欢迎一起讨论。最新版本3.4.0
http://defworld.com/2016/09/14/tbschedule-source-code-analysis/
主要讲解和核心类,以及初始化流程。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.