Project name: PowerJob
Project author: Fake poet
Open Source License: Apache-2.0
The address of the project: https://gitee.com/KFCFans/OhMyScheduler
Project introduction
PowerJob (formerly OhMyScheduler) is a new generation of distributed scheduling and computing framework. Its main functions and features are as follows:
- Easy to use: Provides a front-end Web interface, allowing developers to visually manage scheduling tasks (adding, deleting, modifying, and querying tasks), monitor task running status, and view run logs.
- Improved timing policies: Supports CRON expression, fixed frequency, fixed delay, and API timing policies.
- Rich execution modes: supports single machine, broadcast, Map, and MapReduce execution modes. The Map/MapReduce processor enables developers to obtain cluster distributed computing capability with only a few lines of code.
- The actuator supports a wide range of applications: Spring Bean, built-in/external Java classes, Shell, Python and other processors are supported.
- Convenient operation and maintenance: Supports online logs. Logs generated by actuators can be displayed on the front-end console in real time, reducing debug costs and greatly improving development efficiency.
- Rely on streamlining: minimum relying only on relational database (MySQL/PostgreSQL/Oracle/MS is essentially…).
- High availability & High performance: The scheduling server is carefully designed to achieve lock-free scheduling by changing the strategy of other scheduling frameworks based on database locks. Deploying multiple scheduling servers enables both high availability and improved performance (with unlimited horizontal scaling).
- Failover and recovery: If a task fails, retry the task based on the configured retry policy. The task can be successfully completed as long as there are enough compute nodes in the cluster
Applicable scenario
- Service scenarios that require scheduled execution: For example, data is fully synchronized at dawn every day and service reports are generated.
- For example, clearing cluster logs in broadcast mode is required.
- For example, if a large amount of data needs to be updated and a single machine takes a long time to execute, you can use the Map or MapReduce processor to distribute tasks and mobilize the entire cluster to speed up computing.
Comparison of like products
Project screenshots
A simple trial script processor: Create a task on the task management interface and copy the script content into it.
Trials of Java processors
Create a task: the task entry example is as follows, note: the processor information is entered in the format of the container ID# fully qualified class name
At present, the author of this project is in the full-time maintenance state, so if you have good comments and suggestions, please click the following link to go to the project home page and contact the author: gitee.com/KFCFans/OhM…