|
@@ -24,12 +24,12 @@ public interface MessageProducer {
|
24
|
24
|
void init();
|
25
|
25
|
|
26
|
26
|
default void send(MessageBody msgBody) {
|
27
|
|
- LoggerFactory.getLogger(MessageProducer.class).info("sending msg :==>{}",((DiagnoseMsg)msgBody).getWellId()+" "+ ((DiagnoseMsg)msgBody).getProdDate()+" "+((DiagnoseMsg)msgBody).getSgt().substring(0,5));
|
|
27
|
+ LoggerFactory.getLogger(MessageProducer.class).info("sending msg :==>{}", ((DiagnoseMsg) msgBody).getWellId() + " " + ((DiagnoseMsg) msgBody).getProdDate() + " " + ((DiagnoseMsg) msgBody).getSgt().substring(0, 5));
|
28
|
28
|
}
|
29
|
29
|
|
30
|
30
|
void destroy() throws Exception;
|
31
|
31
|
|
32
|
|
- default void sendDefault(DefaultMQProducer producer, Message msg, MessageBody actualMsg, SendFailCallBack failCallBack, SendSuccessCallBack successCallBack) {
|
|
32
|
+ default void sendDefault(DefaultMQProducer producer, Message msg, MessageBody actualMsg, SendFailCallBack failCallBack, SendSuccessCallBack successCallBack,int retryCount) {
|
33
|
33
|
Logger log = LoggerFactory.getLogger(producer.getProducerGroup() + producer.getClass().getTypeName());
|
34
|
34
|
try {
|
35
|
35
|
producer.send(msg, new SendCallback() {
|
|
@@ -40,7 +40,12 @@ public interface MessageProducer {
|
40
|
40
|
|
41
|
41
|
@Override
|
42
|
42
|
public void onException(Throwable throwable) {
|
43
|
|
- if (Objects.nonNull(failCallBack)) failCallBack.accept(throwable, actualMsg);
|
|
43
|
+ if (retryCount < 2) {
|
|
44
|
+ log.debug("retry send msg ,last time failed cause by {}",throwable.getMessage());
|
|
45
|
+ sendDefault(producer, msg, actualMsg, failCallBack, successCallBack, retryCount + 1);
|
|
46
|
+ } else {
|
|
47
|
+ if (Objects.nonNull(failCallBack)) failCallBack.accept(throwable, actualMsg);
|
|
48
|
+ }
|
44
|
49
|
}
|
45
|
50
|
});
|
46
|
51
|
} catch (MQClientException | RemotingException | InterruptedException e) {
|