DEV Community

Cover image for Openjob: best distributed task scheduling framework
stelin
stelin

Posted on

2

Openjob: best distributed task scheduling framework

What is Openjob?

Openjob is a new distributed task scheduling framework based on Akka. Supports a variety of cronjob, delayed jobs, and workflow. Uses a consistency sharding algorithm and supports unlimited horizontal scaling.

dashboard

Feature

Openjob not only supports basic cronjob, but also provides delayed jobs, distributed computing, and workflow

Cronjob

  • Cronjob,support Unix Crontab expression
  • Second,execution cycle less than 60 seconds
  • Fixed rate,execute tasks at a fixed frequency with minute unit

cronjob

Delay Task
  • Distributed, high-performance delay task based on Redis, and providing rich reports and statistics
Distributed Computing
  • Standalone, execute on a worker client

  • Broadcast, execute on all worker clients

  • Map,a map function can distribute big data to multiple machines for execution, like Hadoop map

  • MapReduce, MapReduce is an extension of the Map.After all map sub-tasks are completed, the Reduce method is executed, which can process the results and data of the task execution in the Reduce method.

  • Sharding, like Elastic-Job model, configure sharding numbers on the management, which can be scheduled to different client by sharding, and supports multiple languages.

delay

Processor
  • Processor, execute by function or class(support Java/Golang/PH)
  • HTTP, http request, used to periodically request an HTTP
  • Shell,shell script
Visual operations
  • Dashboard,rich task statistics and reports
  • Task history,task execution history records
  • Task log,complete task log, and suppport storage (H2/Mysql/Elasticsearch).
  • Task running stack,detailed recording of task execution stack information

log

Alarms and permissions
  • Provides task event monitoring alarms, detailed alarm histories, and support notifications with WeChat, Feishu, and webhook triggers.
  • Designed with namespace, support button-level access and easy to manage complex project.
Multiple languages
  • Java java and its frameworks, with native support.
  • Go golang support use go mod install
  • PHP PHP support use Golang agent to execute task by shell mode 。Swoole frameworks support composer install.
  • Python python support use Golang agent to execute task by shell mode

Use cases

Openjob is well-suited for business scenarios that have task schedule and delay task. such as every day to clean data and report generation. It is also suitable for lightweight computing, and Map/MapReduce can process big data computing. For complex task flows or workflow, it can design workflow with UI

Open source

Item Quartz Elastic-Job XXL-JOB Openjob
Cronjob Cron Cron Cron * Cronjob
* second
* Onetime
* Fixed rate
Delay task No No No Distributed, high-performance delay task based on Redis
Workflow No No No Workflow design with UI
Distributed Computing No Sharding Sharding * Broadcast
* Map/MapReduce
* Sharding
Multiple languages Java * Java
* Shell
* Java
* Shell
* Java
* Go(Gin、beego)
* PHP(Swoft)
* Python(Agent)
* Shell
* HTTP
* Kettle
Visualization No Weak * Task history
* Task log(Not support storage)
* Dashboard
* Task history

* Task log(support H2/Mysql/Elasticsearch)
* Dashboard
* Full permissions
* Task log stack
Manageable No enable、disable task * enable、disable task
* execute once
* stop
* enable、disable task
* execute once
* kill
* stop
Alarms No email email * custom event
* email
* webhook
Performance Every task scheduling try to acquire a lock through the database, causes a high pressure on the database ZooKeeper is performance bottleneck Task scheduling is only by master, causes a high pressure on master Uses sharding algorithm, each node can be scheduled without lock, supports unlimited horizontal scaling, and supports big task scheduling

More

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay