Send task center events through MQ
This commit is contained in:
parent
5d98ed071c
commit
354f11150f
@ -7,4 +7,9 @@ task:
|
|||||||
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
||||||
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
||||||
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
||||||
|
event:
|
||||||
|
mq:
|
||||||
|
enabled: ${TASK_CENTER_EVENT_MQ_ENABLED:false}
|
||||||
|
topic: ${TASK_CENTER_EVENT_MQ_TOPIC:RC_DEFAULT_APP_ORDINARY}
|
||||||
|
tag: ${TASK_CENTER_EVENT_MQ_TAG:task_center_event}
|
||||||
|
|
||||||
|
|||||||
@ -79,3 +79,8 @@ task:
|
|||||||
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
||||||
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
||||||
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
||||||
|
event:
|
||||||
|
mq:
|
||||||
|
enabled: ${TASK_CENTER_EVENT_MQ_ENABLED:false}
|
||||||
|
topic: ${TASK_CENTER_EVENT_MQ_TOPIC:RC_DEFAULT_APP_ORDINARY}
|
||||||
|
tag: ${TASK_CENTER_EVENT_MQ_TAG:task_center_event}
|
||||||
|
|||||||
@ -122,6 +122,11 @@ task:
|
|||||||
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
||||||
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
||||||
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
||||||
|
event:
|
||||||
|
mq:
|
||||||
|
enabled: ${TASK_CENTER_EVENT_MQ_ENABLED:false}
|
||||||
|
topic: ${TASK_CENTER_EVENT_MQ_TOPIC:RC_DEFAULT_APP_ORDINARY}
|
||||||
|
tag: ${TASK_CENTER_EVENT_MQ_TAG:task_center_event}
|
||||||
|
|
||||||
voice-room:
|
voice-room:
|
||||||
region-broadcast:
|
region-broadcast:
|
||||||
|
|||||||
@ -18,3 +18,8 @@ task:
|
|||||||
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
base-url: ${TASK_CENTER_GO_URL:${LIKEI_GATEWAY_ROUTE_GO_URI:http://golang:2900}}
|
||||||
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
internal-token: ${GAME_INTERNAL_CALLBACK_SECRET:}
|
||||||
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
timeout-millis: ${TASK_CENTER_GO_TIMEOUT_MILLIS:3000}
|
||||||
|
event:
|
||||||
|
mq:
|
||||||
|
enabled: ${TASK_CENTER_EVENT_MQ_ENABLED:false}
|
||||||
|
topic: ${TASK_CENTER_EVENT_MQ_TOPIC:RC_DEFAULT_APP_ORDINARY}
|
||||||
|
tag: ${TASK_CENTER_EVENT_MQ_TAG:task_center_event}
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
package com.red.circle.live.infra.client;
|
package com.red.circle.live.infra.client;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.red.circle.component.mq.MessageEvent;
|
||||||
import com.red.circle.live.domain.constant.ActiveSecondConstant;
|
import com.red.circle.live.domain.constant.ActiveSecondConstant;
|
||||||
|
import com.red.circle.mq.rocket.business.service.MessageSenderService;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
@ -14,6 +16,7 @@ import java.util.Objects;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.ObjectProvider;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@ -23,6 +26,8 @@ public class TaskCenterGoClient {
|
|||||||
|
|
||||||
private static final String EVENT_TYPE_MIC_DURATION_SECONDS = "MIC_DURATION_SECONDS";
|
private static final String EVENT_TYPE_MIC_DURATION_SECONDS = "MIC_DURATION_SECONDS";
|
||||||
|
|
||||||
|
private final ObjectProvider<MessageSenderService> messageSenderServiceProvider;
|
||||||
|
|
||||||
@Value("${task.center.go.enabled:true}")
|
@Value("${task.center.go.enabled:true}")
|
||||||
private boolean enabled;
|
private boolean enabled;
|
||||||
|
|
||||||
@ -35,6 +40,19 @@ public class TaskCenterGoClient {
|
|||||||
@Value("${task.center.go.timeout-millis:3000}")
|
@Value("${task.center.go.timeout-millis:3000}")
|
||||||
private Integer timeoutMillis;
|
private Integer timeoutMillis;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.enabled:false}")
|
||||||
|
private boolean mqEnabled;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.topic:RC_DEFAULT_APP_ORDINARY}")
|
||||||
|
private String mqTopic;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.tag:task_center_event}")
|
||||||
|
private String mqTag;
|
||||||
|
|
||||||
|
public TaskCenterGoClient(ObjectProvider<MessageSenderService> messageSenderServiceProvider) {
|
||||||
|
this.messageSenderServiceProvider = messageSenderServiceProvider;
|
||||||
|
}
|
||||||
|
|
||||||
public void reportMicDuration(String sysOrigin,
|
public void reportMicDuration(String sysOrigin,
|
||||||
Long roomId,
|
Long roomId,
|
||||||
Integer micIndex,
|
Integer micIndex,
|
||||||
@ -81,6 +99,9 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void reportEvent(TaskCenterEventRequest request) {
|
private void reportEvent(TaskCenterEventRequest request) {
|
||||||
|
if (mqEnabled) {
|
||||||
|
publishMqEvent(request);
|
||||||
|
}
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -134,6 +155,24 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void publishMqEvent(TaskCenterEventRequest request) {
|
||||||
|
try {
|
||||||
|
MessageSenderService senderService = messageSenderServiceProvider.getIfAvailable();
|
||||||
|
if (Objects.isNull(senderService)) {
|
||||||
|
log.warn("Task center mq sender missing, skip event report. eventId={}", request.getEventId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
senderService.sendEventMessage(MessageEvent.builder()
|
||||||
|
.consumeId(request.getEventId())
|
||||||
|
.topicString(defaultIfBlank(mqTopic, "RC_DEFAULT_APP_ORDINARY"))
|
||||||
|
.tag(defaultIfBlank(mqTag, "task_center_event"))
|
||||||
|
.body(request)
|
||||||
|
.build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("Task center mq report error. eventId={}", request.getEventId(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String readResponse(HttpURLConnection connection) {
|
private String readResponse(HttpURLConnection connection) {
|
||||||
try (InputStream inputStream = connection.getErrorStream() != null
|
try (InputStream inputStream = connection.getErrorStream() != null
|
||||||
? connection.getErrorStream()
|
? connection.getErrorStream()
|
||||||
@ -166,6 +205,11 @@ public class TaskCenterGoClient {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String defaultIfBlank(String value, String fallback) {
|
||||||
|
String normalized = Objects.toString(value, "").trim();
|
||||||
|
return normalized.isEmpty() ? fallback : normalized;
|
||||||
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
private static class TaskCenterEventRequest {
|
private static class TaskCenterEventRequest {
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.red.circle.order.app.common.task;
|
package com.red.circle.order.app.common.task;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.red.circle.component.mq.MessageEvent;
|
||||||
|
import com.red.circle.mq.rocket.business.service.MessageSenderService;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -15,6 +17,7 @@ import java.util.Objects;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.ObjectProvider;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@ -24,6 +27,8 @@ public class TaskCenterGoClient {
|
|||||||
|
|
||||||
private static final String EVENT_TYPE_RECHARGE_GOLD = "RECHARGE_GOLD";
|
private static final String EVENT_TYPE_RECHARGE_GOLD = "RECHARGE_GOLD";
|
||||||
|
|
||||||
|
private final ObjectProvider<MessageSenderService> messageSenderServiceProvider;
|
||||||
|
|
||||||
@Value("${task.center.go.enabled:true}")
|
@Value("${task.center.go.enabled:true}")
|
||||||
private boolean enabled;
|
private boolean enabled;
|
||||||
|
|
||||||
@ -36,6 +41,19 @@ public class TaskCenterGoClient {
|
|||||||
@Value("${task.center.go.timeout-millis:3000}")
|
@Value("${task.center.go.timeout-millis:3000}")
|
||||||
private Integer timeoutMillis;
|
private Integer timeoutMillis;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.enabled:false}")
|
||||||
|
private boolean mqEnabled;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.topic:RC_DEFAULT_APP_ORDINARY}")
|
||||||
|
private String mqTopic;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.tag:task_center_event}")
|
||||||
|
private String mqTag;
|
||||||
|
|
||||||
|
public TaskCenterGoClient(ObjectProvider<MessageSenderService> messageSenderServiceProvider) {
|
||||||
|
this.messageSenderServiceProvider = messageSenderServiceProvider;
|
||||||
|
}
|
||||||
|
|
||||||
public void reportRechargeGold(String sysOrigin,
|
public void reportRechargeGold(String sysOrigin,
|
||||||
Long userId,
|
Long userId,
|
||||||
Long purchaseHistoryId,
|
Long purchaseHistoryId,
|
||||||
@ -68,6 +86,9 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void reportEvent(TaskCenterEventRequest request) {
|
private void reportEvent(TaskCenterEventRequest request) {
|
||||||
|
if (mqEnabled) {
|
||||||
|
publishMqEvent(request);
|
||||||
|
}
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -109,6 +130,24 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void publishMqEvent(TaskCenterEventRequest request) {
|
||||||
|
try {
|
||||||
|
MessageSenderService senderService = messageSenderServiceProvider.getIfAvailable();
|
||||||
|
if (Objects.isNull(senderService)) {
|
||||||
|
log.warn("Task center mq sender missing, skip event report. eventId={}", request.getEventId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
senderService.sendEventMessage(MessageEvent.builder()
|
||||||
|
.consumeId(request.getEventId())
|
||||||
|
.topicString(defaultIfBlank(mqTopic, "RC_DEFAULT_APP_ORDINARY"))
|
||||||
|
.tag(defaultIfBlank(mqTag, "task_center_event"))
|
||||||
|
.body(request)
|
||||||
|
.build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("Task center mq report error. eventId={}", request.getEventId(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String readResponse(HttpURLConnection connection) {
|
private String readResponse(HttpURLConnection connection) {
|
||||||
try (InputStream inputStream = connection.getErrorStream() != null
|
try (InputStream inputStream = connection.getErrorStream() != null
|
||||||
? connection.getErrorStream()
|
? connection.getErrorStream()
|
||||||
@ -129,6 +168,11 @@ public class TaskCenterGoClient {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String defaultIfBlank(String value, String fallback) {
|
||||||
|
String normalized = Objects.toString(value, "").trim();
|
||||||
|
return normalized.isEmpty() ? fallback : normalized;
|
||||||
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
private static class TaskCenterEventRequest {
|
private static class TaskCenterEventRequest {
|
||||||
|
|||||||
@ -3,6 +3,8 @@ package com.red.circle.other.app.common.task;
|
|||||||
import cn.hutool.http.HttpResponse;
|
import cn.hutool.http.HttpResponse;
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.red.circle.component.mq.MessageEvent;
|
||||||
|
import com.red.circle.mq.rocket.business.service.MessageSenderService;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -11,6 +13,7 @@ import java.util.Objects;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.ObjectProvider;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@ -21,6 +24,8 @@ public class TaskCenterGoClient {
|
|||||||
private static final String EVENT_TYPE_GAME_CONSUME_GOLD = "GAME_CONSUME_GOLD";
|
private static final String EVENT_TYPE_GAME_CONSUME_GOLD = "GAME_CONSUME_GOLD";
|
||||||
private static final String EVENT_TYPE_GIFT_CONSUME_GOLD = "GIFT_CONSUME_GOLD";
|
private static final String EVENT_TYPE_GIFT_CONSUME_GOLD = "GIFT_CONSUME_GOLD";
|
||||||
|
|
||||||
|
private final ObjectProvider<MessageSenderService> messageSenderServiceProvider;
|
||||||
|
|
||||||
@Value("${task.center.go.enabled:true}")
|
@Value("${task.center.go.enabled:true}")
|
||||||
private boolean enabled;
|
private boolean enabled;
|
||||||
|
|
||||||
@ -33,6 +38,19 @@ public class TaskCenterGoClient {
|
|||||||
@Value("${task.center.go.timeout-millis:3000}")
|
@Value("${task.center.go.timeout-millis:3000}")
|
||||||
private Integer timeoutMillis;
|
private Integer timeoutMillis;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.enabled:false}")
|
||||||
|
private boolean mqEnabled;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.topic:RC_DEFAULT_APP_ORDINARY}")
|
||||||
|
private String mqTopic;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.tag:task_center_event}")
|
||||||
|
private String mqTag;
|
||||||
|
|
||||||
|
public TaskCenterGoClient(ObjectProvider<MessageSenderService> messageSenderServiceProvider) {
|
||||||
|
this.messageSenderServiceProvider = messageSenderServiceProvider;
|
||||||
|
}
|
||||||
|
|
||||||
public void reportGameConsumeGold(String sysOrigin,
|
public void reportGameConsumeGold(String sysOrigin,
|
||||||
Long userId,
|
Long userId,
|
||||||
String provider,
|
String provider,
|
||||||
@ -101,6 +119,9 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void reportEvent(TaskCenterEventRequest request) {
|
private void reportEvent(TaskCenterEventRequest request) {
|
||||||
|
if (mqEnabled) {
|
||||||
|
publishMqEvent(request);
|
||||||
|
}
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -127,6 +148,24 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void publishMqEvent(TaskCenterEventRequest request) {
|
||||||
|
try {
|
||||||
|
MessageSenderService senderService = messageSenderServiceProvider.getIfAvailable();
|
||||||
|
if (Objects.isNull(senderService)) {
|
||||||
|
log.warn("Task center mq sender missing, skip event report. eventId={}", request.getEventId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
senderService.sendEventMessage(MessageEvent.builder()
|
||||||
|
.consumeId(request.getEventId())
|
||||||
|
.topicString(defaultIfBlank(mqTopic, "RC_DEFAULT_APP_ORDINARY"))
|
||||||
|
.tag(defaultIfBlank(mqTag, "task_center_event"))
|
||||||
|
.body(request)
|
||||||
|
.build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("Task center mq report error. eventId={}", request.getEventId(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String trimRightSlash(String value) {
|
private String trimRightSlash(String value) {
|
||||||
while (value.endsWith("/")) {
|
while (value.endsWith("/")) {
|
||||||
value = value.substring(0, value.length() - 1);
|
value = value.substring(0, value.length() - 1);
|
||||||
@ -134,6 +173,11 @@ public class TaskCenterGoClient {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String defaultIfBlank(String value, String fallback) {
|
||||||
|
String normalized = Objects.toString(value, "").trim();
|
||||||
|
return normalized.isEmpty() ? fallback : normalized;
|
||||||
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
private static class TaskCenterEventRequest {
|
private static class TaskCenterEventRequest {
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.red.circle.wallet.app.common.task;
|
package com.red.circle.wallet.app.common.task;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.red.circle.component.mq.MessageEvent;
|
||||||
|
import com.red.circle.mq.rocket.business.service.MessageSenderService;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -15,6 +17,7 @@ import java.util.Objects;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.ObjectProvider;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@ -24,6 +27,8 @@ public class TaskCenterGoClient {
|
|||||||
|
|
||||||
private static final String EVENT_TYPE_RECHARGE_GOLD = "RECHARGE_GOLD";
|
private static final String EVENT_TYPE_RECHARGE_GOLD = "RECHARGE_GOLD";
|
||||||
|
|
||||||
|
private final ObjectProvider<MessageSenderService> messageSenderServiceProvider;
|
||||||
|
|
||||||
@Value("${task.center.go.enabled:true}")
|
@Value("${task.center.go.enabled:true}")
|
||||||
private boolean enabled;
|
private boolean enabled;
|
||||||
|
|
||||||
@ -36,6 +41,19 @@ public class TaskCenterGoClient {
|
|||||||
@Value("${task.center.go.timeout-millis:3000}")
|
@Value("${task.center.go.timeout-millis:3000}")
|
||||||
private Integer timeoutMillis;
|
private Integer timeoutMillis;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.enabled:false}")
|
||||||
|
private boolean mqEnabled;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.topic:RC_DEFAULT_APP_ORDINARY}")
|
||||||
|
private String mqTopic;
|
||||||
|
|
||||||
|
@Value("${task.center.event.mq.tag:task_center_event}")
|
||||||
|
private String mqTag;
|
||||||
|
|
||||||
|
public TaskCenterGoClient(ObjectProvider<MessageSenderService> messageSenderServiceProvider) {
|
||||||
|
this.messageSenderServiceProvider = messageSenderServiceProvider;
|
||||||
|
}
|
||||||
|
|
||||||
public void reportShippingAgentRechargeGold(String sysOrigin,
|
public void reportShippingAgentRechargeGold(String sysOrigin,
|
||||||
Long userId,
|
Long userId,
|
||||||
Long runningWaterId,
|
Long runningWaterId,
|
||||||
@ -99,6 +117,9 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void reportEvent(TaskCenterEventRequest request) {
|
private void reportEvent(TaskCenterEventRequest request) {
|
||||||
|
if (mqEnabled) {
|
||||||
|
publishMqEvent(request);
|
||||||
|
}
|
||||||
if (!enabled) {
|
if (!enabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -140,6 +161,24 @@ public class TaskCenterGoClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void publishMqEvent(TaskCenterEventRequest request) {
|
||||||
|
try {
|
||||||
|
MessageSenderService senderService = messageSenderServiceProvider.getIfAvailable();
|
||||||
|
if (Objects.isNull(senderService)) {
|
||||||
|
log.warn("Task center mq sender missing, skip event report. eventId={}", request.getEventId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
senderService.sendEventMessage(MessageEvent.builder()
|
||||||
|
.consumeId(request.getEventId())
|
||||||
|
.topicString(defaultIfBlank(mqTopic, "RC_DEFAULT_APP_ORDINARY"))
|
||||||
|
.tag(defaultIfBlank(mqTag, "task_center_event"))
|
||||||
|
.body(request)
|
||||||
|
.build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("Task center mq report error. eventId={}", request.getEventId(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private String readResponse(HttpURLConnection connection) {
|
private String readResponse(HttpURLConnection connection) {
|
||||||
try (InputStream inputStream = connection.getErrorStream() != null
|
try (InputStream inputStream = connection.getErrorStream() != null
|
||||||
? connection.getErrorStream()
|
? connection.getErrorStream()
|
||||||
@ -160,6 +199,11 @@ public class TaskCenterGoClient {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String defaultIfBlank(String value, String fallback) {
|
||||||
|
String normalized = Objects.toString(value, "").trim();
|
||||||
|
return normalized.isEmpty() ? fallback : normalized;
|
||||||
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
private static class TaskCenterEventRequest {
|
private static class TaskCenterEventRequest {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user