GCP Pub/Sub:如何在 PublishCallbackListener 的 onFailure() 中获取事件详细信息

GCP Pub/Sub: How to get event details in onFailure() of PublishCallbackListener

我们希望在向 Pub/Sub 发布事件失败的情况下拥有故障回复机制。我正在使用 "ListenableFutureCallback" 来了解消息发布成功与否。如果失败,它只是抛出异常,我需要将事件详细信息 post 发送到内部消息服务。如何在 onFailure() 方法中获取事件详细信息。 我正在使用 Spring 集成。 下面是一段代码。

听众:

@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.");
    }

服务激活器:

        PubSubMessageHandler pubSubMessageHandler = new PubSubMessageHandler(pubSubTemplate, testTopic);
        pubSubMessageHandler.setPublishCallback(pubSubOperationListener);
        return pubSubMessageHandler;

如果有不同的方法,请提出建议。

目前,这是不可能的,因为 Spring Cloud GCP 只是委托给客户端库中的 Pub/Sub Publisher

但是,当我们将发布者提供的 Future 包装在 Spring Cloud GCP 中时,我们可能会在其中包含原始消息和其他元数据。这将是一个应该提交的功能请求 here.