Openjob
Distributed high performance task scheduling framework
Install / Use
/learn @open-job/OpenjobREADME
Introduction
Openjob is A distributed and high-performance task scheduling framework that supports multiple cronjob, delay task, workflow, lightweight distributed computing, unlimited horizontal scaling, with high scalability and fault tolerance. Also has permission management, powerful alarm monitoring, and support multiple languages.
- High reliability
- Distributed with stateless design, using the Master/Worker architecture, supports multiple databases (MySQL/PostgreSQL/Oracle)
- High performance
- System uses a consistency sharding algorithm, lock-free design, task scheduling is accurate down to the second, supporting lightweight distributed computing and unlimited horizontal scaling
- Cronjob
- Supports distributed cronjob, fixed rate tasks, high-performance second tasks, and onetime tasks
- Distributed computing
- Supports multiple distributed programming models such as standalone, broadcast, Map, MapReduce, and sharding, easy to complete distributed computing for big data
- Delay task
- High performance delay task based on Redis , support multi-level storage, and provides rich statistics and reports
- Workflow
- Supports workflow scheduling engine, visual DAG design, and easy to complete complex task scheduling
- Permission management
- User management, supports menu, button, and data permission settings, flexible management of user permissions
- Alarm monitoring
- Overall monitoring metrics, rich and alarm in time, easy to locate and resolve online problem
- Multiple languages
- Support multiple languages such as Java, Go, PHP, and Python, as well as build with frameworks such as Spring Boot, Gin, and Swoft
Open source
|Item|Quartz|Elastic-Job|XXL-JOB|Openjob| | ----- | ----- | ----- | ----- | ----- | |Cronjob|Cron|Cron|Cron|* Cronjob<br>* second<br>* Onetime<br>* Fixed rate| |Delay task|No|No|No|Distributed, high-performance delay task based on Redis| |Workflow|No|No|No|Workflow design with UI| |Distributed Computing|No|Sharding|Sharding|* Broadcast<br>* Map/MapReduce<br>* Sharding| |Multiple languages|Java|* Java<br>* Shell|* Java<br>* Shell|* Java<br>* Go(Gin、beego)<br>* PHP(Swoft)<br>* Python(Agent)<br>* Shell<br>* HTTP<br>* Kettle| |Visualization|No|Weak|* Task history<br>* Task log(Not support storage)<br>* Dashboard|* Task history<br><br>* Task log(support H2/Mysql/Elasticsearch)<br>* Dashboard<br>* Full permissions<br>* Task log stack| |Manageable|No|enable、disable task|* enable、disable task<br>* execute once<br>* stop|* enable、disable task<br>* execute once<br>* kill<br>* stop| |Alarms|No|email|email|* custom event<br>* email<br>* webhook| |Performance|Every task scheduling try to acquire a lock through the database, causes a high pressure on the database|ZooKeeper is performance bottleneck|Task scheduling is only by master, causes a high pressure on master|Uses sharding algorithm, each node can be scheduled without lock, supports unlimited horizontal scaling, and supports big task scheduling|
Maven dependency
<openjob.worker.version>1.0.7</openjob.worker.version>
<dependency>
<groupId>io.openjob.worker</groupId>
<artifactId>openjob-worker-core</artifactId>
<version>${openjob.worker.version}</version>
</dependency>
<!--If your project base on `Spring Boot`, you can directly use the following dependencies-->
<dependency>
<groupId>io.openjob.worker</groupId>
<artifactId>openjob-worker-spring-boot-starter</artifactId>
<version>${openjob.worker.version}</version>
</dependency>
Documentation
Live demo
- Find the live demo on our website.
- username: openjob
- password: openjob.io
Contact
- Gitter: https://gitter.im/openjob/openjob
- Discord: https://discord.gg/ZUmX57fKa5
- QQ Group: 849015265
- WeChat Assistant:
- WeAccount:
- Mail list:
- swoft@qq.com
Openjob ecosystem
- Openjob Website - Openjob official website
- Openjob UI - UI for Openjob
- Openjob Samples - Samples for Openjob
- Openjob Docker - Openjob integration with docker
Contributors
This project exists thanks to all the people who contribute. [Contributors].
License
Openjob is under the Apache 2.0 license. See the LICENSE file for details.
Related Skills
node-connect
350.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
