Нам нужен механизм возврата при сбое в случае сбоя при публикации события в Pub / Sub. Я использую «ListenableFutureCallback», чтобы узнать сообщение опубликовано успешно или нет. В случае сбоя это просто выдача исключения, и мне нужны подробности о событии, чтобы опубликовать его во внутренней службе обмена сообщениями. Как получить подробности о событии в методе onFailure (). Я использую Spring Integration. Ниже приведен фрагмент кода.
Слушатель:
@Component
public class PubSubOperationListener implements ListenableFutureCallback<String> {
private static Logger LOGGER = LoggerFactory.getLogger(PubSubOperationListener.class);
@Override
public void onFailure(Throwable throwable) {
LOGGER.error("Failed to publish the message and details : {}",throwable);
// Logic to process it using different approach.
}
@Override
public void onSuccess(String s) {
LOGGER.info("Message published successfully.");
}
ServiceActivator:
PubSubMessageHandler pubSubMessageHandler = new PubSubMessageHandler(pubSubTemplate, testTopic);
pubSubMessageHandler.setPublishCallback(pubSubOperationListener);
return pubSubMessageHandler;
Пожалуйста, предложите, если есть другой подход, чтобы сделать то же самое.