Skip to content

Commit b9b7822

Browse files
authored
Multiple Fixes (#159)
1 parent 6a775f3 commit b9b7822

File tree

234 files changed

+615
-413
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

234 files changed

+615
-413
lines changed

.circleci/config.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ aliases:
117117
executors:
118118
rqueue-executor:
119119
machine:
120-
image: ubuntu-1604:202007-01
120+
image: ubuntu-2004:202201-02
121121

122122
working_directory: ~/repo
123123

@@ -139,7 +139,7 @@ build_steps: &build_steps
139139
# fallback to using the latest cache if no exact match is found
140140
- v1-dependencies-
141141

142-
- run: gradle dependencies
142+
- run: ./gradlew dependencies
143143
- save_cache:
144144
paths:
145145
- ~/.gradle

CHANGELOG.md

+14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# [Rqueue] New and Notable Changes
22

3+
### [2.10.2] - 15-Jul-2022
4+
5+
### Fixes
6+
7+
* Message status is not enqueued only, but it should be successful, failed etc
8+
* Weighted queue with size 1 was not working
9+
* Deleted message reappears
10+
11+
### Features
12+
13+
* Disable Rqueue using `rqueue.enabled` flag
14+
315
### [2.10.1] - 18-Oct-2021
416

517
* Fixes for concurrency when task executor is provided see issue #[122]
@@ -281,4 +293,6 @@ Fixes:
281293

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

296+
[2.10.2]: https://repo1.maven.org/maven2/com/github/sonus21/rqueue-core/2.10.2-RELEASE
297+
284298
[122]: https://github.com/sonus21/rqueue/issues/122

README.md

+27-7
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ well, where all services code is in Spring.
1919

2020
## Features
2121

22-
* **Instant delivery** : Instant execute this message
22+
* **Instant delivery** : Instant execute this message in the background
2323
* **Message scheduling** : A message can be scheduled for any arbitrary period
2424
* **Unique message** : Unique message processing for a queue based on the message id
2525
* **Periodic message** : Process same message at certain interval
@@ -71,14 +71,14 @@ Release Version: [Maven central](https://search.maven.org/search?q=g:com.github.
7171
* Add dependency
7272
* Gradle
7373
```groovy
74-
implementation 'com.github.sonus21:rqueue-spring-boot-starter:2.10.1-RELEASE'
74+
implementation 'com.github.sonus21:rqueue-spring-boot-starter:2.10.2-RELEASE'
7575
```
7676
* Maven
7777
```xml
7878
<dependency>
7979
<groupId>com.github.sonus21</groupId>
8080
<artifactId>rqueue-spring-boot-starter</artifactId>
81-
<version>2.10.1-RELEASE</version>
81+
<version>2.10.2-RELEASE</version>
8282
</dependency>
8383
```
8484
@@ -91,14 +91,14 @@ Release Version: [Maven central](https://search.maven.org/search?q=g:com.github.
9191
* Add Dependency
9292
* Gradle
9393
```groovy
94-
implementation 'com.github.sonus21:rqueue-spring:2.10.1-RELEASE'
94+
implementation 'com.github.sonus21:rqueue-spring:2.10.2-RELEASE'
9595
```
9696
* Maven
9797
```xml
9898
<dependency>
9999
<groupId>com.github.sonus21</groupId>
100100
<artifactId>rqueue-spring</artifactId>
101-
<version>2.10.1-RELEASE</version>
101+
<version>2.10.2-RELEASE</version>
102102
</dependency>
103103
```
104104
@@ -255,12 +255,32 @@ a
255255
PR/[issue](https://github.com/sonus21/rqueue/issues/new?template=i-m-using-rqueue.md&title=Add+my+organisation+in+Rqueue+Users)
256256
.**
257257

258-
<a href="https://tuneyou.com/"><img alt="TuneYou" src="https://raw.githubusercontent.com/sonus21/rqueue/master/docs/static/users/tuneyou.png" width="150" align="middle"/></a>
258+
<a href="https://tuneyou.com"><img alt="TuneYou" src="https://raw.githubusercontent.com/sonus21/rqueue/master/docs/static/users/tuneyou.png" width="150" align="middle"/></a>
259259
&nbsp;&nbsp;
260260
<a href="https://www.pokerstarssports.eu"><img alt="PokerStars" src="https://raw.githubusercontent.com/sonus21/rqueue/master/docs/static/users/pokerstars.png" width="250" align="middle"/></a>
261261
&nbsp;&nbsp;
262-
<a href="https://bitbot.plus/"><img src="https://raw.githubusercontent.com/sonus21/rqueue/master/docs/static/users/bitbot.png" alt="Bitbot" height="60" align="middle"/></a>
262+
<a href="https://bitbot.plus"><img src="https://raw.githubusercontent.com/sonus21/rqueue/master/docs/static/users/bitbot.png" alt="Bitbot" height="60" align="middle"/></a>
263263
&nbsp;&nbsp;
264+
<a href="https://www.chaotiinfo.cn"><img src="https://raw.githubusercontent.com/sonus21/rqueue/master/docs/static/users/chaoti-info.png" alt="CHAOTI INFO TECH(SHENZHEN)" height="60" align="middle"/></a>
265+
&nbsp;&nbsp;
266+
267+
<!---- Signing Key
268+
~/.gradle/gradle.properties file
269+
270+
sonatypeUsername=xyz
271+
sonatypePassword=xyz
272+
signing.keyId=371EDCC6
273+
signing.password=xyz
274+
signing.secretKeyRingFile=/Users/sonu/.gnupg/secring.gpg
275+
276+
277+
For signing generate gpg key using gpg tool using `gpg --gen-key`
278+
279+
signing.password is gpg key password
280+
signing.keyId is last 8 character of gpg key, find using `gpg -K`
281+
signing.secretKeyRingFile=/Users/sonu/.gnupg/secring.gpg generate this as `gpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/secring.gpg`
282+
283+
--->
264284

265285
## Support
266286

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ ext {
7070

7171
subprojects {
7272
group = 'com.github.sonus21'
73-
version = '2.10.1-RELEASE'
73+
version = '2.10.2-RELEASE'
7474

7575
dependencies {
7676
// https://mvnrepository.com/artifact/org.springframework/spring-messaging

docs/static/users/chaoti-info.png

43.9 KB
Loading

gradle/code-signing.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ artifacts {
1414
archives javadocJar
1515
}
1616

17-
ext.isNotCi = !"true".equals(System.getenv("CI"))
17+
ext.isNotCi = "true" != System.getenv("CI")
1818
signing {
1919
required { isNotCi && gradle.taskGraph.hasTask("uploadArchives") }
2020
sign configurations.archives

rqueue-core/src/main/java/com/github/sonus21/rqueue/annotation/MessageListener.java

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.lang.annotation.Target;
2424
import org.springframework.core.annotation.AliasFor;
2525
import org.springframework.stereotype.Component;
26+
2627
/**
2728
* Indicates that an annotated class is a message listener
2829
*

rqueue-core/src/main/java/com/github/sonus21/rqueue/annotation/RqueueListener.java

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
@Retention(RetentionPolicy.RUNTIME)
5454
@Documented
5555
public @interface RqueueListener {
56+
5657
/**
5758
* List of unique queues. Queues can be defined by their name, placeholder that would be resolved
5859
* to properties file or could be list of comma separated queue names.

rqueue-core/src/main/java/com/github/sonus21/rqueue/common/RqueueLockManager.java

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.time.Duration;
2020

2121
public interface RqueueLockManager {
22+
2223
boolean acquireLock(String lockKey, String lockValue, Duration duration);
2324

2425
boolean releaseLock(String lockKey, String lockValue);

rqueue-core/src/main/java/com/github/sonus21/rqueue/common/RqueueRedisTemplate.java

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434

3535
@Slf4j
3636
public class RqueueRedisTemplate<V extends Serializable> {
37+
3738
protected RedisTemplate<String, V> redisTemplate;
3839

3940
public RqueueRedisTemplate(RedisConnectionFactory redisConnectionFactory) {

rqueue-core/src/main/java/com/github/sonus21/rqueue/common/impl/RqueueLockManagerImpl.java

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.util.Assert;
2323

2424
public class RqueueLockManagerImpl implements RqueueLockManager {
25+
2526
private final RqueueStringDao rqueueStringDao;
2627

2728
public RqueueLockManagerImpl(RqueueStringDao rqueueStringDao) {

rqueue-core/src/main/java/com/github/sonus21/rqueue/config/RqueueListenerBaseConfig.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
import com.github.sonus21.rqueue.dao.impl.RqueueStringDaoImpl;
3434
import com.github.sonus21.rqueue.listener.RqueueMessageListenerContainer;
3535
import com.github.sonus21.rqueue.metrics.RqueueQueueMetrics;
36-
import com.github.sonus21.rqueue.utils.ReactiveEnabled;
3736
import com.github.sonus21.rqueue.utils.RedisUtils;
37+
import com.github.sonus21.rqueue.utils.condition.ReactiveEnabled;
3838
import com.github.sonus21.rqueue.utils.pebble.ResourceLoader;
3939
import com.github.sonus21.rqueue.utils.pebble.RqueuePebbleExtension;
4040
import com.mitchellbosecke.pebble.PebbleEngine;

rqueue-core/src/main/java/com/github/sonus21/rqueue/config/RqueueWebConfig.java

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
@Getter
2828
@Setter
2929
public class RqueueWebConfig {
30+
3031
/**
3132
* Control whether web app is enabled or not. If it's marked false then it will throw HTTP 503
3233
* (Service unavailable) error.

rqueue-core/src/main/java/com/github/sonus21/rqueue/config/SimpleRqueueListenerContainerFactory.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,8 @@ public void setMaxNumWorkers(int maxNumWorkers) {
236236
/**
237237
* Message converter must be configured before calling this method.
238238
*
239-
* @throws IllegalAccessException when messageConverterProvider is null
240239
* @return the message converter object
240+
* @throws IllegalAccessException when messageConverterProvider is null
241241
*/
242242
public MessageConverter getMessageConverter() throws IllegalAccessException {
243243
if (messageConverterProvider == null) {
@@ -249,15 +249,17 @@ public MessageConverter getMessageConverter() throws IllegalAccessException {
249249
/**
250250
* Rqueue configures a default message converter that can convert message to/from for any object.
251251
*
252-
* @see DefaultMessageConverterProvider
253252
* @param messageConverterProvider the message converter provider
253+
* @see DefaultMessageConverterProvider
254254
*/
255255
public void setMessageConverterProvider(MessageConverterProvider messageConverterProvider) {
256256
notNull(messageConverterProvider, "messageConverterProvider must not be null");
257257
this.messageConverterProvider = messageConverterProvider;
258258
}
259259

260-
/** @return get Redis connection factor */
260+
/**
261+
* @return get Redis connection factor
262+
*/
261263
public RedisConnectionFactory getRedisConnectionFactory() {
262264
return redisConnectionFactory;
263265
}
@@ -273,7 +275,9 @@ public void setRedisConnectionFactory(RedisConnectionFactory redisConnectionFact
273275
this.redisConnectionFactory = redisConnectionFactory;
274276
}
275277

276-
/** @return message template */
278+
/**
279+
* @return message template
280+
*/
277281
public RqueueMessageTemplate getRqueueMessageTemplate() {
278282
return rqueueMessageTemplate;
279283
}

rqueue-core/src/main/java/com/github/sonus21/rqueue/converter/GenericMessageConverter.java

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
*/
4343
@Slf4j
4444
public class GenericMessageConverter implements SmartMessageConverter {
45+
4546
private final SmartMessageSerDes smartMessageSerDes;
4647

4748
public GenericMessageConverter() {
@@ -85,6 +86,7 @@ public Message<?> toMessage(Object payload, MessageHeaders headers, Object conve
8586
log.trace("Payload: {} headers: {} hint: {}", payload, headers, conversionHint);
8687
return toMessage(payload, headers);
8788
}
89+
8890
/**
8991
* Convert the payload of a {@link Message} from a serialized form to a typed Object of type
9092
* stored in message it self.
@@ -113,11 +115,13 @@ public Object fromMessage(Message<?> message, Class<?> targetClass) {
113115
@NoArgsConstructor
114116
@AllArgsConstructor
115117
private static class Msg {
118+
116119
private String msg;
117120
private String name;
118121
}
119122

120123
public static class SmartMessageSerDes {
124+
121125
private final ObjectMapper objectMapper;
122126

123127
public SmartMessageSerDes(ObjectMapper objectMapper) {

rqueue-core/src/main/java/com/github/sonus21/rqueue/converter/JsonMessageConverter.java

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
*/
4242
@Slf4j
4343
public class JsonMessageConverter implements MessageConverter {
44+
4445
private final ObjectMapper objectMapper;
4546

4647
public JsonMessageConverter() {

rqueue-core/src/main/java/com/github/sonus21/rqueue/converter/RqueueRedisSerializer.java

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
@Slf4j
3535
public class RqueueRedisSerializer implements RedisSerializer<Object> {
36+
3637
private final RedisSerializer<Object> serializer;
3738

3839
public RqueueRedisSerializer(RedisSerializer<Object> redisSerializer) {

rqueue-core/src/main/java/com/github/sonus21/rqueue/core/EndpointRegistry.java

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
* com.github.sonus21.rqueue.annotation.RqueueListener}.
3636
*/
3737
public final class EndpointRegistry {
38+
3839
private static final Object lock = new Object();
3940
private static final Map<String, QueueDetail> queueNameToDetail = new HashMap<>();
4041

rqueue-core/src/main/java/com/github/sonus21/rqueue/core/Job.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ public interface Job {
130130
/**
131131
* The current status of this job, the message can have different status.
132132
*
133-
* @see MessageMetadata
134133
* @return job status
134+
* @see MessageMetadata
135135
*/
136136
JobStatus getStatus();
137137

rqueue-core/src/main/java/com/github/sonus21/rqueue/core/MessageScheduler.java

+4
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454

5555
public abstract class MessageScheduler
5656
implements DisposableBean, ApplicationListener<RqueueBootstrapEvent> {
57+
5758
private final Object monitor = new Object();
5859
@Autowired protected RqueueSchedulerConfig rqueueSchedulerConfig;
5960
@Autowired protected RqueueConfig rqueueConfig;
@@ -255,6 +256,7 @@ protected long getMinDelay() {
255256
}
256257

257258
private class QueueScheduler {
259+
258260
private void updateLastScheduleTime(String queueName, long time) {
259261
queueNameToLastMessageScheduleTime.put(queueName, time);
260262
}
@@ -354,6 +356,7 @@ private void checkExistingTask(
354356
@ToString
355357
@AllArgsConstructor
356358
private class MessageMoverTask implements Runnable {
359+
357360
private final String name;
358361
private final String queueName;
359362
private final String zsetName;
@@ -388,6 +391,7 @@ public String getName() {
388391
}
389392

390393
private class MessageSchedulerListener implements MessageListener {
394+
391395
private void handleMessage(String queueName, Long startTime) {
392396
long lastSeenTime = getLastScheduleTime(queueName);
393397
long currentTime = System.currentTimeMillis();

rqueue-core/src/main/java/com/github/sonus21/rqueue/core/ProcessingQueueMessageScheduler.java

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
@Slf4j
2929
public class ProcessingQueueMessageScheduler extends MessageScheduler {
30+
3031
private Map<String, Long> queueNameToDelay;
3132

3233
@Override

rqueue-core/src/main/java/com/github/sonus21/rqueue/core/ReactiveRqueueMessageEnqueuer.java

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import reactor.core.publisher.Mono;
2626

2727
public interface ReactiveRqueueMessageEnqueuer {
28+
2829
/**
2930
* Enqueue a message on given queue, consume as soon as possible.
3031
*

rqueue-core/src/main/java/com/github/sonus21/rqueue/core/RedisScriptFactory.java

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
@SuppressWarnings("unchecked")
2828
@ToString
2929
public class RedisScriptFactory {
30+
3031
public static <T> RedisScript<T> getScript(ScriptType type) {
3132
Resource resource = new ClassPathResource(type.getPath());
3233
DefaultRedisScript<T> script = new DefaultRedisScript<>();

rqueue-core/src/main/java/com/github/sonus21/rqueue/core/RqueueBeanProvider.java

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
@Getter
3434
@Setter
3535
public class RqueueBeanProvider {
36+
3637
@Autowired private RqueueMessageMetadataService rqueueMessageMetadataService;
3738
@Autowired private RqueueSystemConfigDao rqueueSystemConfigDao;
3839
@Autowired private RqueueJobDao rqueueJobDao;

0 commit comments

Comments
 (0)