首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个用户同步处理GCP PubSub (或GCP任务)

每个用户同步处理GCP PubSub (或GCP任务)
EN

Stack Overflow用户
提问于 2020-11-21 16:29:27
回答 1查看 236关注 0票数 0

我有一个用例,需要处理一组事件。我需要他们在并行处理,整体,但按顺序为每个用户。这能在PubSub (也许是GCP任务?)中完成吗?

例如:

6事件同时出现(User_A_Event_1,User_A_Event_2,User_B_Event_1,User_B_Event_2,User_C_Event_1,User_D_Event_1)。

我想按UserID对它们进行分组,并行处理每个用户,然后按顺序处理每个事件(在成功完成之前的事件之前,后续的事件处理不会开始)。类似于:

  • 用户A串行处理: Process User_A_Event_1 --> Process User_A_Event_2
  • 用户B串行处理: Process User_B_Event_1 --> Process User_B_Event_2
  • 用户C串行处理:进程User_C_Event_1
  • 用户D串行处理:进程User_D_Event_1

如果它重要,我不知道什么用户将有事件,在什么时候。我们可能几个月没有看到任何事件的用户,然后开始得到他们的很多。

我正试图找到在GCP PubSub中实现这一目标的方法,但我也对其他解决方案持开放态度。我更倾向于通过推而不是拉来做这件事,因为我可以长时间排队而不用排队。

感谢你的帮助。

克雷格

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-23 11:46:40

云店/分局订购交货能帮上忙。您将使用用户作为订购键。这意味着Cloud /Sub将按照发布服务器接收消息的顺序将消息传递给订阅者。在预先不知道用户集合的情况下,如果某个特定用户的事件很少或突发,则有序传递将具有您所希望的属性。

在订阅方,所作的担保取决于订阅者的类型。对于客户端库(使用流拉),您提供的回调将执行到完成,每次都使用相同的键对消息执行回调。对于使用pull的订阅者,每个拉请求都将按照接收密钥的顺序包含密钥的消息,而密钥的消息一次只在一个拉响应中未完成。对于push订阅者,订购键的每条消息将分别发送到您的端点,下一条消息将在确认相同密钥的前一条消息之前不发送。

请注意,Cloud /Sub的有序传递仍然至少有一次传递语义,这意味着可以重新传递确认的消息,这也将导致对相同密钥的后续消息的重新传递。

有关更多细节,请参见关于订购的中帖

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64945408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档