Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# [Rqueue] New and Notable Changes

## [2.7.0] - TBD
## [2.7.0] - 13-Apr-2021

### Fixes

Expand Down Expand Up @@ -221,3 +221,5 @@ Fixes:
[2.6.0]: https://repo1.maven.org/maven2/com/github/sonus21/rqueue-core/2.6.0-RELEASE

[2.6.1]: https://repo1.maven.org/maven2/com/github/sonus21/rqueue-core/2.6.1-RELEASE

[2.7.0]: https://repo1.maven.org/maven2/com/github/sonus21/rqueue-core/2.7.0-RELEASE
24 changes: 17 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
[![Javadoc](https://javadoc.io/badge2/com.github.sonus21/rqueue-core/javadoc.svg)](https://javadoc.io/doc/com.github.sonus21/rqueue-core)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)

**Rqueue** is an asynchronous task executor(worker) built for spring framework based on the spring
**Rqueue** is an asynchronous task executor(worker) built for spring(boot) framework based on the spring
framework's messaging library backed by Redis. It can be used as message broker as well, where all
services code is in Spring.

Expand All @@ -24,9 +24,9 @@ services code is in Spring.
* **Message delivery**: It's guaranteed that a message is consumed **at least once**. (Message
would be consumed by a worker more than once due to the failure in the underlying
worker/restart-process etc, otherwise exactly one delivery)
* **Redis cluster** : Redis cluster can be used with driver.
* **Redis cluster** : Redis cluster can be used with Lettuce client.
* **Metrics** : In flight messages, waiting for consumption and delayed messages
* **Web Dashboard**: a web dashboard to manage a queue and queue insights including latency
* **Web Dashboard**: Web dashboard to manage a queue and queue insights including latency
* **Automatic message serialization and deserialization**
* **Concurrency**: Concurrency of any queue can be configured
* **Queue Priority** :
Expand All @@ -43,25 +43,35 @@ services code is in Spring.
* **Message Multicasting**: Call multiple message listeners on very message
* **Reactive Programming**: Supports reactive Redis and spring webflux

### Requirements

* Spring 5+
* Spring boot 2+
* Lettuce client for Redis cluster
* Read master preference for Redis cluster

## Getting Started

### Dependency

Snapshot Version: https://s01.oss.sonatype.org/content/repositories/snapshots
Release Version: [Maven central](https://search.maven.org/search?q=g:com.github.sonus21)

#### Spring-boot

* Get the latest one
from [Maven central](https://search.maven.org/search?q=g:com.github.sonus21%20AND%20a:rqueue-spring-boot-starter)
* Add dependency
* Gradle
```groovy
implementation 'com.github.sonus21:rqueue-spring-boot-starter:2.6.1-RELEASE'
implementation 'com.github.sonus21:rqueue-spring-boot-starter:2.7.0-RELEASE'
```
* Maven
```xml
<dependency>
<groupId>com.github.sonus21</groupId>
<artifactId>rqueue-spring-boot-starter</artifactId>
<version>2.6.1-RELEASE</version>
<version>2.7.0-RELEASE</version>
</dependency>
```

Expand All @@ -72,14 +82,14 @@ services code is in Spring.
* Add Dependency
* Gradle
```groovy
implementation 'com.github.sonus21:rqueue-spring:2.6.1-RELEASE'
implementation 'com.github.sonus21:rqueue-spring:2.7.0-RELEASE'
```
* Maven
```xml
<dependency>
<groupId>com.github.sonus21</groupId>
<artifactId>rqueue-spring</artifactId>
<version>2.6.1-RELEASE</version>
<version>2.7.0-RELEASE</version>
</dependency>
```

Expand Down
10 changes: 5 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ ext {
springVersion = System.getenv("SPRING_VERSION")
springDataVersion = System.getenv("SPRING_DATA_VERSION")
microMeterVersion = System.getenv("MICROMETER_VERSION")

// springBootVersion = '2.2.0.RELEASE'
// springVersion = '5.2.0.RELEASE'
// springDataVersion = '2.2.0.RELEASE'
// microMeterVersion = '1.3.2'
//
// springBootVersion = '2.0.6.RELEASE'
// springVersion = '5.0.10.RELEASE'
// springDataVersion = '2.0.6.RELEASE'
// microMeterVersion = '1.1.0'

// logging dependencies
lombokVersion = '1.18.10'
Expand Down
4 changes: 3 additions & 1 deletion gradle/packaging.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ jar {
'Build-Revision': version,
'Created-By': "Gradle ${gradle.gradleVersion}",
'Build-Jdk': "${System.properties['java.version']} (${System.properties['java.vendor']} ${System.properties['java.vm.version']})",
'Build-OS': "${System.properties['os.name']} ${System.properties['os.arch']} ${System.properties['os.version']}"
'Build-OS': "${System.properties['os.name']} ${System.properties['os.arch']} ${System.properties['os.version']}",
'Spring-Version': "${springVersion}",
'Spring-Boot-Version': "${springBootVersion}"
)
}
}