PowerJob : Distributed computing and job scheduling framework

Team PowerJob
2 min readJan 15, 2021
PowerJob Logo

PowerJob is a distributed computing and job scheduling framework. Based on Akka framework, it makes scheduling easier for Java applications. Starting with the first line of code in 2020–03–16, PowerJob embraces its first release in 2020–04–16. Up till now, 2021–01–16, PowerJob has 26 iterated versions and gained more than 2400 stars in Github. Released under Apache license 2.0, please feel free to try, deploy and put into production.

Online trial:

Features:

  • Friendly UI: Front-end page is provided and developers can manage their task, monitor the status, check the logs online, etc.
  • Abundant Timing Strategies: Four timing strategies are supported, including CRON expression, fixed rate, fixed delay and OpenAPI.
  • Multiple Execution Mode: Four execution modes are supported, including stand-alone, broadcast, Map and MapReduce. Distributed computing resource could be utilized in MapReduce mode, try the magic out here!
  • DAG Job Flow Support: Both job dependency management and data communications between jobs are supported.
  • Cross-language Client Support: So far, developers can use Java, Spring, Shell, Python to write their own PowerJob client and define tasks that can be triggered by PowerJob workflow.
  • Disaster Tolerance Support: As long as there are enough computing nodes, configurable retry policies make it possible for your task to be executed and finished successfully.

Quick start tutorial

Please refer to Quick start with IDE.

Applicable scenes

  • Timed tasks, for example, allocating e-coupons on 9 AM every morning.
  • Broadcast tasks, for example, broadcasting to the cluster to clear logs.
  • MapReduce tasks, for example, speeding up certain job like updating large amounts of data.
  • Delayed tasks, for example, processing overdue orders.
  • Customized tasks, triggered with OpenAPI.

Framework overview

As is illustrated in the following picture, PowerJob-server is separately deployed, with PowerJob-console being the built-in front-end management page. Both PowerJob-worker and PowerJob-client are included in your own Java applications by introducing related jars. PowerJob-worker receives scheduling messages from PowerJob-server, executes the codes you wrote in your processor and report back to the server. PowerJob-client is applied when you need to trigger OpenAPI.

Framework overview of PowerJob

--

--