如何在GCP发布/订阅中检查确认时间



我是Google Cloud Pub/Sub的新手。我已经创建了一个主题并创建了订阅。在Java中处理消息。我创建了一个类MyReceiver,并实现了messagerreceiver接口的receiveMessage(PubsubMessage消息,AckReplyConsumer消费者)。

@Service
public class MyReceiver implements MessageReceiver {

ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(2);
@Override
public void receiveMessage(PubsubMessage message, AckReplyConsumer consumer) {
System.out.println(message.getMessageId());
executor.execute(() -> {
Thread.sleep(60000);
consumer.ack();
});
}
}

我想查看等待60000毫秒后确认成功的消息的确认时间。有人能帮忙检查确认时间吗?如果GCP提供任何仪表板,日志或类,让我知道这一点?

Cloud Pub/Sub不跟踪确认的时间,因此它不会返回关于确认的时间信息。

要知道消息的确认时间,您必须在代码中手动跟踪它,在确认消息时添加当前时间戳。

例如,我使用本文档中的示例代码在回调函数中添加了datetime.datetime.now():
def callback(message: pubsub_v1.subscriber.message.Message) -> None:
print(f"Received {message}."+ str(datetime.datetime.now()) )
message.ack()
streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)
print(f"Listening for messages on {subscription_path}..n")

最新更新