From 8ce3bb68bdc2250cc4a8a3d29085443fac64615a Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Fri, 23 Sep 2022 18:04:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/main' into v1.2.0
---
src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java b/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java
index ae24b37..10bb7e2 100644
--- a/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java
+++ b/src/main/java/com/dji/sample/component/mqtt/service/impl/MessageSenderServiceImpl.java
@@ -50,14 +50,18 @@
}
public Optional<ServiceReply> publishWithReply(String topic, CommonTopicResponse response) {
+ return this.publishWithReply(ServiceReply.class, topic, response, 2);
+ }
+
+ public <T> Optional<T> publishWithReply(Class<T> clazz, String topic, CommonTopicResponse response, int retryTime) {
AtomicInteger time = new AtomicInteger(0);
// Retry three times
- while (time.getAndIncrement() < 3) {
+ while (time.getAndIncrement() < retryTime) {
this.publish(topic, response);
- Chan<CommonTopicReceiver<ServiceReply>> chan = Chan.getInstance();
+ Chan<CommonTopicReceiver<T>> chan = Chan.getInstance();
// If the message is not received in 0.5 seconds then resend it again.
- CommonTopicReceiver<ServiceReply> receiver = chan.get(response.getMethod());
+ CommonTopicReceiver<T> receiver = chan.get(response.getMethod());
if (receiver == null) {
continue;
}
--
Gitblit v1.9.3