22
33[ English] ( README.md ) | [ 中文] ( README.zh-CN.md )
44
5- ![ License] ( https://img.shields.io/badge/license-MIT -blue.svg )
5+ ![ License] ( https://img.shields.io/badge/license-GPL -blue.svg )
66![ Rust] ( https://img.shields.io/badge/rust-1.70+-orange.svg )
7- ![ Go Compatible] ( https://img.shields.io/badge/go%20compatible-hibiken%2Fasynq-green.svg )
87
98Asynq is a simple, reliable, and efficient distributed task queue library written in Rust, backed by Redis, inspired by [ hibiken/asynq] ( https://github.com/hibiken/asynq ) .
109
1110** 🔗 Fully Compatible with Go asynq** : This implementation is fully compatible with the Go version of [ hibiken/asynq] ( https://github.com/hibiken/asynq ) , allowing seamless interoperation with Go services.
1211
1312## 🌟 Features
1413
15- - ✅ ** Guaranteed at-least-once execution** - Tasks won't be lost
14+ - ** Guaranteed at-least-once execution** - Tasks won't be lost
1615- ⏰ ** Task scheduling** - Support for delayed and scheduled tasks
1716- 🔄 ** Automatic retry** - Configurable retry policies for failed tasks
1817- 🛡️ ** Fault recovery** - Automatic task recovery on worker crashes
@@ -369,22 +368,22 @@ asynq/
369368
370369The Processor module implements task processing architecture compatible with Go asynq processor.go:
371370
372- - ✅ ** Semaphore concurrency control** : Uses Tokio Semaphore for precise control of concurrent workers
373- - ✅ ** Queue priority** : Supports both strict priority and weighted priority modes
374- - ✅ ** Task timeout** : Supports task-level and global timeout settings
375- - ✅ ** Graceful shutdown** : Waits for all active workers to complete before shutdown
376- - ✅ ** Automatic retry** : Failed tasks automatically retry with exponential backoff
377- - ✅ ** Task archiving** : Tasks automatically archived after reaching max retry count
371+ - ** Semaphore concurrency control** : Uses Tokio Semaphore for precise control of concurrent workers
372+ - ** Queue priority** : Supports both strict priority and weighted priority modes
373+ - ** Task timeout** : Supports task-level and global timeout settings
374+ - ** Graceful shutdown** : Waits for all active workers to complete before shutdown
375+ - ** Automatic retry** : Failed tasks automatically retry with exponential backoff
376+ - ** Task archiving** : Tasks automatically archived after reaching max retry count
378377
379378### GroupAggregator Features
380379
381380The GroupAggregator module implements task aggregation functionality compatible with Go asynq aggregator.go:
382381
383- - ✅ ** Task grouping** : Set group label for tasks using ` with_group() `
384- - ✅ ** Batch aggregation** : Automatically aggregate tasks from the same group into a single batch task
385- - ✅ ** Flexible triggers** : Supports three trigger conditions: grace period, max group size, max delay
386- - ✅ ** Custom aggregation** : Customize aggregation logic via ` GroupAggregator ` trait
387- - ✅ ** Functional interface** : Quickly create aggregators using ` GroupAggregatorFunc `
382+ - ** Task grouping** : Set group label for tasks using ` with_group() `
383+ - ** Batch aggregation** : Automatically aggregate tasks from the same group into a single batch task
384+ - ** Flexible triggers** : Supports three trigger conditions: grace period, max group size, max delay
385+ - ** Custom aggregation** : Customize aggregation logic via ` GroupAggregator ` trait
386+ - ** Functional interface** : Quickly create aggregators using ` GroupAggregatorFunc `
388387
389388Example usage:
390389
@@ -405,8 +404,6 @@ let aggregator = GroupAggregatorFunc::new(|group, tasks| {
405404server . set_group_aggregator (aggregator );
406405```
407406
408- See [ GROUP_AGGREGATOR.md] ( docs/GROUP_AGGREGATOR.md ) for more details.
409-
410407## 🛠️ Configuration Options
411408
412409### Server Configuration
0 commit comments