Git Product home page Git Product logo

powerjob's Introduction

English | 简体中文

PowerJob

actions Maven Central GitHub release (latest SemVer) LICENSE

  • Have you ever wondered how cron jobs could be organized orderly?
  • Have you ever felt upset about tasks that carry with complex dependencies?
  • Have you ever felt helpless when scheduling tasks suddenly terminated without any warning?
  • Have you ever felt depressed when batches of business tasks need to be processed in a distributed manner?

Well, PowerJob is there for you, it is the choice of a new generation. It is a powerful, business-oriented scheduling framework that provides distributed computing ability. Based on Akka architecture, it makes everything with scheduling easier. Just with several steps, PowerJob could be deployed and work for you!

Introduction

Features

  • Simple to use: PowerJob provides a friendly front-end Web that allows developers to visually manage tasks, monitor tasks, and view logs online.
  • Complete timing strategy: PowerJob supports four different scheduling strategies, including CRON expression, fixed frequency timing, fixed delay timing as well as the Open API.
  • Various execution modes: PowerJob supports four execution modes: stand-alone, broadcast, Map, and MapReduce. It's worth mentioning the Map and MapReduce modes. With several lines of codes, developers could take full advantage of PowerJob's distributed computing ability.
  • Complete workflow support: PowerJob supports DAG(Directed acyclic graph) based online task configuration. Developers could arrange tasks on the console, while data could be transferred among tasks on the flow.
  • Extensive executor support: PowerJob supports multiple processors, including Spring Beans, ordinary Java objects, Shell, Python and so on.
  • Simple in dependency: PowerJob aims to be simple in dependency. The only dependency is merely database (MySQL / Oracle / MS SQLServer ...), with MongoDB being the extra dependency for storing large log files.
  • High availability and performance: Unlike traditional job-scheduling frameworks that rely on database locks, PowerJob server is lock-free. PowerJob supports unlimited horizontal expansion. It's easy to achieve high availability and performance by deploying as many PowerJob server instances as you need.
  • Quick failover and recovery support: Whenever any task failed, PowerJob server would retry according to the configured strategy. As long as there were enough nodes in the cluster, the failed tasks could execute successfully finally.

Applicable scenes

  • Scenarios with timed tasks: such as full synchronization of data at midnight, generating business reports at desired time.
  • Scenarios that require all machines to run tasks simultaneously: such as log cleanup.
  • Scenarios that require distributed processing: For example, a large amount of data requires updating, while the stand-alone execution takes quite a lot of time. The Map/MapReduce mode could be applied in which the workers would join the cluster for PowerJob server to dispatch, to speed up the time-consuming process, therefore improving the computing ability of the whole cluster.
  • Scenarios with delayed tasks: For instance, disposal of overdue orders.

Design goals

PowerJob aims to be an enterprise scheduling middleware. By deploying PowerJob-server as the scheduling center, all the applications could gain scheduling and distributed computing ability relying on PowerJob-worker.

Online trial

Trial address: Online Trial Address
Application name: powerjob-agent-test
Application password: 123

Comparison with similar products

QuartZ PowerJob
Timing type CRON CRON, fixed frequency, fixed delay, OpenAPI
Task type Built-in Java Built-in Java, external Java (JVM Container), Shell, Python and other scripts
Distributed strategy Unsupported MapReduce dynamic sharding
Online task management Unsupported Supported
Online logging Unsupported Supported
Scheduling methods and performance Based on database lock, there is a performance bottleneck Lock-free design, high performance without upper limit
Alarm monitoring Unsupported Email, WebHook, DingTalk. An interface is provided for customization.
System dependence Any relational database (MySQL, Oracle ...) supported by JDBC Any relational database (MySQL, Oracle ...) supported by Spring Data Jpa
workflow Unsupported Supported

Document

Docs

中文文档

User Registration

Click to register as PowerJob user and contribute to PowerJob!
ღ( ´・ᴗ・` )ღ Many thanks to the following registered users. ღ( ´・ᴗ・` )ღ

PowerJob User

Others

  • Welcome to the Gitter Community: LINK
  • PowerJob is permanently open source software(Apache License, Version 2.0), please feel free to try, deploy and put into production!
  • Welcome to contribute to PowerJob, both Pull Requests and Issues are precious.
  • Please STAR PowerJob if it is valuable. ~ =  ̄ω ̄ =
  • Do you need any help or want to propose suggestions? Please raise Github issues or contact the Author @KFCFans-> [email protected] directly.

powerjob's People

Contributors

kfcfans avatar jjnnzb avatar ocean23 avatar dudiao avatar hxuanyu avatar jjn0703 avatar colafans avatar mcdonaldfans avatar glacier-hug avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.