A lightweight and distributed task scheduling platform written in rust. (一个轻量的分布式的任务调度平台通过rust编写)
Delicate
English | 简体中文
- What is delicate - Features - Benchmark - Get Started - Setting up delicate - Quick start - Documentation - Roadmap - Contributing - LicenseWhat is delicate
delicate A lightweight and distributed task scheduling platform written in rust.:
features
- Friendly UI: [Front-end] Convenient management of tasks & executors, monitoring their status and supporting manual maintenance etc.
- Flexible Operations: Flexible task operations, support for limiting the maximum number of parallelism in a single node, time zone settings corresponding to cron expressions, scheduling modes (single, fixed number, constantly repeating), the ability to manually trigger tasks at any time, manually terminate task instances, and view task logs online.
- High Availability: Delicate supports unlimited horizontal expansion. It's easy to achieve high availability and performance by deploying as many Delicate servers and executors.
- High Performance: Lightweight and essential features speed up the performance, The basic resource overhead for
delicateis roughly (less than 0.1% cpu usage, with about 10m of memory.)
- Observability: There are many meaningful statistics periodically in a readable way.
- Upgrade: Dynamic upgrade of the system (upgrade is done by obtaining the latest source code and performing database migration.
- Reusability: Excutor provides
restful-apithat allows user applications to maintain custom tasks.
- Permission Management: Permission management function based on casbin implementation, continuously optimize the experience.
The architecture of delicate:
Project rendering
Click me

Benchmark
Task take about 6,424 ns (+/- 52) per scheduling on CentOS Linux release 7.6.1810 (Core) (varies by OS/hardware).System: CentOS Linux release 7.6.1810 (Core) - 4cores/8G.
Single node: delicate-executor
Task creation, peak cpu consumption 3%, qps: 17000+
Task cancellation, peak cpu consumption 3%, qps: 18000+
Task manual scheduling, peak cpu consumption 3.5%, qps: 14000+
Task removal, peak cpu consumption 3%, qps: 14000+
health_check, peak cpu consumption 4%, qps: 2600+
The peak memory consumption is all within 60M (varies by OS/hardware).
The rest of the overall indicators await bench.
Get Started
The basic common usage of delicate is to quickly set up for the backend servers and executors. We split it into multiple simple steps to illustrate the delicate concepts and operations.
The source code installation requires: * rustc (minimum-supported version of rustc is 1.54.) * libmysqlclient-dev & libpq-dev & libssl-dev
Setting up delicate