Skip to content

Commit bd8ca2a

Browse files
committed
update doc
1 parent 3f6847f commit bd8ca2a

File tree

2 files changed

+78
-67
lines changed

2 files changed

+78
-67
lines changed

README.md

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,58 @@
11
<div>
22
<img align="left" src="https://raw.githubusercontent.com/sonus21/rqueue/master/rqueue-core/src/main/resources/public/rqueue/img/android-chrome-192x192.png" alt="Rqueue Logo" width="90">
3-
<h1 style="float:left">Rqueue: Redis Queue, Task Queue, Scheduled Queue for Spring and Spring Boot</h1>
3+
<h1 style="float:left">Rqueue: Redis-Backed Job Queue and Scheduler for Spring and Spring Boot</h1>
44
</div>
55

66
[![Coverage Status](https://coveralls.io/repos/github/sonus21/rqueue/badge.svg?branch=master)](https://coveralls.io/github/sonus21/rqueue?branch=master)
77
[![Maven Central](https://img.shields.io/maven-central/v/com.github.sonus21/rqueue-core)](https://repo1.maven.org/maven2/com/github/sonus21/rqueue-core)
88
[![Javadoc](https://javadoc.io/badge2/com.github.sonus21/rqueue-core/javadoc.svg)](https://javadoc.io/doc/com.github.sonus21/rqueue-core)
99
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
1010

11-
**Rqueue** is an asynchronous task executor(worker) built for spring and spring-boot framework based
12-
on the spring framework's messaging library backed by Redis. It can be used as message broker as
13-
well, where all services code is in Spring.
11+
**Rqueue** is a Redis-backed job queue and producer-consumer system for Spring and Spring Boot. It
12+
supports both producers and consumers for background jobs, scheduled tasks, and event-driven
13+
workflows, similar to Sidekiq or Celery, but fully integrated into the Spring programming model with
14+
annotation-driven APIs and minimal setup.
1415

1516
<br/>
1617

1718
![Message Flow](https://raw.githubusercontent.com/sonus21/rqueue/master/docs/static/rqueue-message-flow.svg?sanitize=true)
1819

1920
## Features
2021

21-
* **Instant delivery** : Instant execute this message in the background
22-
* **Message scheduling** : A message can be scheduled for any arbitrary period
23-
* **Unique message** : Unique message processing for a queue based on the message id
24-
* **Periodic message** : Process same message at certain interval
25-
* **Priority tasks** : task having some special priority like high, low, medium
26-
* **Message delivery** : It's guaranteed that a message is consumed **at least once**. (Message
27-
would be consumed by a worker more than once due to the failure in the underlying
28-
worker/restart-process etc, otherwise exactly one delivery)
29-
* **Message retry** : Message would be retried automatically on application crash/failure/restart
30-
etc.
31-
* **Automatic message serialization and deserialization**
32-
* **Message Multicasting** : Call multiple message listeners on every message
33-
* **Batch Message Polling** : Fetch multiple messages from Redis at once
34-
* **Metrics** : In flight messages, waiting for consumption and scheduled messages
35-
* **Competing Consumers** : multiple messages can be consumed in parallel by different
36-
workers/listeners.
37-
* **Concurrency** : Concurrency of any listener can be configured
38-
* **Queue Priority** :
39-
* Group level queue priority(weighted and strict)
40-
* Sub queue priority(weighted and strict)
41-
* **Long execution job** : Long running jobs can check in periodically.
42-
* **Execution Backoff** : Exponential and fixed back off (default fixed back off)
43-
* **Middleware** : Add one or more middleware, middlewares are called before listener method.
44-
* **Callbacks** : Callbacks for dead letter queue, discard etc
45-
* **Events** : 1. Bootstrap event 2. Task execution event.
46-
* **Redis connection** : A different redis setup can be used for Rqueue
47-
* **Redis cluster** : Redis cluster can be used with Lettuce client.
48-
* **Redis Sentinel** : Redis sentinel can be used with Rqueue.
49-
* **Reactive Programming** : Supports reactive Redis and spring webflux
50-
* **Web Dashboard** : Web dashboard to manage a queue and queue insights including latency
22+
* **Job execution**
23+
* Run background jobs asynchronously
24+
* Schedule jobs for any future time
25+
* Run periodic jobs at fixed intervals
26+
* Guarantee at-least-once delivery
27+
* Retry failed jobs automatically with fixed or exponential backoff
28+
29+
* **Queues and routing**
30+
* Deduplicate messages using message IDs
31+
* Process priority workloads such as high, medium, and low
32+
* Prioritize workloads with group-level queue priority and weighted, strict, or hard strict ordering
33+
* Fan out the same message to multiple listeners
34+
* Poll messages in batches for higher throughput
35+
36+
* **Consumers and scale**
37+
* Use annotation-driven listeners with Spring beans
38+
* Get started with just the dependency in Spring Boot applications
39+
* Run multiple competing consumers in parallel
40+
* Configure listener concurrency per worker
41+
* Support long-running jobs with periodic check-ins
42+
* Serialize and deserialize message payloads automatically
43+
44+
* **Operations and extensibility**
45+
* Add middleware before listener execution
46+
* Use callbacks for dead-letter, discard, and related flows
47+
* Subscribe to bootstrap and task execution events
48+
* Monitor in-flight, queued, and scheduled messages with metrics
49+
* Use the built-in web dashboard for queue visibility and latency insights
50+
51+
* **Redis and platform support**
52+
* Use a separate Redis setup for Rqueue if needed
53+
* Support Redis standalone, Sentinel, and Cluster setups
54+
* Work with Lettuce for Redis Cluster
55+
* Support reactive Redis and Spring WebFlux
5156

5257
### Requirements
5358

@@ -318,7 +323,6 @@ signing.secretKeyRingFile=/Users/sonu/.gnupg/secring.gpg generate this as `gpg -
318323

319324
* Please report bug,question,feature(s)
320325
to [issue](https://github.com/sonus21/rqueue/issues/new/choose) tracker.
321-
* Ask question on StackOverflow using [#rqueue](https://stackoverflow.com/tags/rqueue) tag
322326

323327
## Contribution
324328

@@ -337,10 +341,6 @@ to familiarise yourself with the project.
337341
* Maven Central:
338342
* [https://repo1.maven.org/maven2/com/github/sonus21/rqueue-spring](https://repo1.maven.org/maven2/com/github/sonus21/rqueue-spring)
339343
* [https://repo1.maven.org/maven2/com/github/sonus21/rqueue-spring-boot-starter](https://repo1.maven.org/maven2/com/github/sonus21/rqueue-spring-boot-starter)
340-
341-
* StackOverflow: [https://stackoverflow.com/tags/rqueue](https://stackoverflow.com/tags/rqueue)
342-
* Discord: https://discord.gg/2hgQZXS2
343-
* Project Progress: [https://github.com/sonus21/rqueue/projects/3](https://github.com/sonus21/rqueue/projects/3)
344344

345345
## License
346346

docs/index.md

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ description: Rqueue Redis Based Async Message Processor
66
permalink: /
77
---
88

9-
# Rqueue | Redis Queue For Spring Framework
9+
# Rqueue | Redis-Backed Job Queue and Scheduler For Spring Framework
1010

1111
{: .fs-4 }
1212

13-
Rqueue is an asynchronous task executor (worker) built for the Spring Framework. It leverages Spring's
14-
messaging library and is backed by Redis. Rqueue can serve as a message broker where all service code
15-
remains within Spring or Spring Boot applications. It fully supports both the Spring and Spring Boot
16-
frameworks.
13+
Rqueue is a Redis-backed job queue and producer-consumer system for Spring and Spring Boot. It
14+
supports both producers and consumers for background jobs, scheduled tasks, and event-driven
15+
workflows, similar to Sidekiq or Celery, while staying fully integrated with the Spring programming
16+
model through annotation-driven APIs and minimal setup.
1717

1818
{: .fs-6 .fw-300 }
1919

@@ -24,29 +24,40 @@ frameworks.
2424

2525
## Features
2626

27-
* **Instant Delivery**: Immediate execution of messages.
28-
* **Message Scheduling**: Schedule messages for any future time.
29-
* **Unique Message Processing**: Ensures unique message processing based on a message ID.
30-
* **Periodic Message Processing**: Process messages at defined intervals.
31-
* **Priority Tasks**: Support for task prioritization (e.g., high, medium, low).
32-
* **Guaranteed Delivery**: Ensures each message is consumed at least once, with automatic retries
33-
in case of worker failures or restarts.
34-
* **Automatic Serialization**: Seamless serialization and deserialization of message payloads.
35-
* **Message Multicasting**: Support for multiple message listeners for a single message.
36-
* **Batch Polling**: Efficiently fetch multiple messages from Redis in a single operation.
37-
* **Metrics**: Real-time insights into in-flight, waiting, and delayed messages.
38-
* **Competing Consumers**: Multiple workers can consume messages from the same queue in parallel.
39-
* **Concurrency Control**: Configurable concurrency levels for message listeners.
40-
* **Queue Priority**: Supports both group-level and sub-queue level priorities.
41-
* **Long-Running Jobs**: Check-in mechanism to support jobs with extended execution times.
42-
* **Execution Backoff**: Flexible exponential and fixed backoff strategies for retries.
43-
* **No-Retry Strategy**: Support for explicitly disabling retries for specific tasks.
44-
* **Middleware**: Intercept and process messages before they reach the listener.
45-
* **Callbacks**: Custom handlers for messages moved to dead letter queues or discarded.
46-
* **Events**: Comprehensive bootstrap and task execution lifecycle events.
47-
* **Flexible Redis Options**: Support for standalone, Sentinel, and Cluster Redis configurations.
48-
* **Reactive Support**: Full integration with Reactive Redis and Spring WebFlux.
49-
* **Web Dashboard**: Integrated web-based interface for queue management and monitoring.
27+
* **Job execution**
28+
* Run background jobs asynchronously
29+
* Schedule jobs for any future time
30+
* Run periodic jobs at fixed intervals
31+
* Guarantee at-least-once delivery
32+
* Retry failed jobs automatically with fixed or exponential backoff
33+
* Disable retries for selected workloads when needed
34+
35+
* **Queues and routing**
36+
* Deduplicate messages using message IDs
37+
* Process priority workloads such as high, medium, and low
38+
* Prioritize workloads with group-level queue priority and weighted, strict, or hard strict ordering
39+
* Fan out the same message to multiple listeners
40+
* Poll messages in batches for higher throughput
41+
42+
* **Consumers and scale**
43+
* Use annotation-driven listeners with Spring beans
44+
* Get started with just the dependency in Spring Boot applications
45+
* Run multiple competing consumers in parallel
46+
* Configure listener concurrency per worker
47+
* Support long-running jobs with periodic check-ins
48+
* Serialize and deserialize message payloads automatically
49+
50+
* **Operations and extensibility**
51+
* Add middleware before listener execution
52+
* Use callbacks for dead-letter, discard, and related flows
53+
* Subscribe to bootstrap and task execution events
54+
* Monitor in-flight, queued, and scheduled messages with metrics
55+
* Use the built-in web dashboard for queue visibility and monitoring
56+
57+
* **Redis and platform support**
58+
* Support Redis standalone, Sentinel, and Cluster setups
59+
* Support reactive Redis and Spring WebFlux
60+
* Keep Redis configuration flexible for different deployment models
5061

5162
### Requirements
5263

0 commit comments

Comments
 (0)