GCP Pub / Sub: как получить подробную информацию о событии в onFailure () PublishCallbackListener - PullRequest
1 голос
/ 31 октября 2019

Нам нужен механизм возврата при сбое в случае сбоя при публикации события в 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;

Пожалуйста, предложите, если есть другой подход, чтобы сделать то же самое.

1 Ответ

1 голос
/ 31 октября 2019

В настоящее время это невозможно, поскольку Spring Cloud GCP просто делегирует Pub / Sub Publisher в клиентской библиотеке.

Однако, когда мы переносим будущее, предоставляемое издателем веснойОблако GCP, мы можем включить туда оригинальное сообщение и другие метаданные. Это будет запрос на добавление функции здесь .

...