From 3bd37525cae0cb19c9ba81fbd3762ba0780b78ec Mon Sep 17 00:00:00 2001 From: jiangjining Date: Wed, 13 Jan 2021 19:57:06 +0800 Subject: [PATCH] docs: Modify README.md and fill in LICENSE. --- LICENSE | 2 +- README.md | 80 +++++++++++++++++++++++-------------------------------- 2 files changed, 34 insertions(+), 48 deletions(-) diff --git a/LICENSE b/LICENSE index 261eeb9e..e69d0591 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright [2021] [PowerJob] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index d772fd93..44e9739d 100644 --- a/README.md +++ b/README.md @@ -11,73 +11,59 @@ English | [简体中文](./README_zhCN.md) 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? +[PowerJob](https://github.com/PowerJob/PowerJob) is an open-source distributed computing and job scheduling framework which allows developers to easily schedule tasks in their own application. -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! +Refer to [Quick Started Tutorial](https://www.yuque.com/powerjob/en/baz8y6) for detailed information. # 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. +- **Friendly UI:** [Front-end](http://try.powerjob.tech/#/welcome) 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](http://try.powerjob.tech/)! + +- **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. ### 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. +- 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](https://www.yuque.com/powerjob/en/fs3vg0). ### Online trial -Trial address: [Online Trial Address](http://try.powerjob.tech/) -Application name: powerjob-agent-test -Application password: 123 +- Trial address: [Online Trial Address](http://try.powerjob.tech/) +- 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 +# Documents **[Docs](https://www.yuque.com/powerjob/en/introduce)** **[中文文档](https://www.yuque.com/powerjob/guidence/ztn4i5)** -# User Registration -[Click to register as PowerJob user and contribute to PowerJob!](https://github.com/PowerJob/PowerJob/issues/6) +# Known Users +[Click to register as PowerJob user!](https://github.com/PowerJob/PowerJob/issues/6) ღ( ´・ᴗ・\` )ღ Many thanks to the following registered users. ღ( ´・ᴗ・\` )ღ

PowerJob User

+# License + +PowerJob is released under Apache License 2.0. Please refer to [License](./LICENSE) for details. # Others -- Welcome to the Gitter Community: [LINK](https://gitter.im/PowerJob/community) -- 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-> `tengjiqi@gmail.com` directly. \ No newline at end of file + +- Any developer interested in getting more involved in PowerJob may join our [Gitter Community](https://gitter.im/PowerJob/community) and make [contributions](https://github.com/PowerJob/PowerJob/pulls)! + +- Reach out to me through email **tengjiqi@gmail.com**. Any issues or questions are welcomed on [Issues](https://github.com/PowerJob/PowerJob/issues). + +- Look forward to your opinions. Response may be late but not denied.