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…