处理前延迟消息处理和删除

iPh*_*ney 11 google-cloud-pubsub

我需要此功能为移动应用中的操作发送推送通知,但等待用户撤消操作,直到说10秒.

是否可以将主题中发布的消息的处理延迟10秒?然后(有时,如果用户撤消)在10秒之前删除消息,如果不需要处理?

Gab*_*hen 17

取决于你是否也写了订阅者:

您可以控制您的订阅者代码:

  1. 在Pubsub消息中添加时间戳,以便在何时处理该消息.
  2. 在您的客户端(订户)中,只有在达到处理消息的时间戳时才有逻辑来确认消息.
  3. Pubsub本身将重新尝试发送消息,直到它被确认(或10天)

如果您无法控制订阅者,则可以拥有my-topic和my-delayed-topic.人们可以发布到前一个主题,该主题将只有一个您将实现的订阅者:

  1. 像以前一样向我的主题公开留言.
  2. 将拥有该主题的订阅者,该订阅者可以执行与上面所示相同的限制:
  3. 如果该消息的时间已到达您的处理程序,则会将该消息发布/中继到my-delayed-topic.

您还可以使用task-queue + pubsub-topic而不是pubsub-topic + pubsub-topic来实现上述逻辑.