谷歌云发布订阅延迟消息
Posted
技术标签:
【中文标题】谷歌云发布订阅延迟消息【英文标题】:google cloud pub sub delayed messages 【发布时间】:2021-02-01 10:47:56 【问题描述】:我正在构建一个电子商务系统,其中包括对报价的投标实施,每个报价可以包括多于一轮,并且每轮都有 startDate 和 endDate,每轮结束后我想做其他过程,例如计算中标、输出价,向用户发送通知,进入下一轮并更新报价剩余数量,所有这些都将根据轮次结束日期进行。 我们选择 GC pub-sub 作为解决方案,在创建回合后发布事件和消息,并向该事件添加侦听器以工作并执行所需的流程,但解决方案中唯一缺少的是延迟每条消息或调度的能力直到回合结束日期到来,然后听众才能继续工作
那么当我发布每条消息时,如何为每条消息设置一个日期或时间戳,以便在该日期到来时稍后处理?
我正在使用节点 js
【问题讨论】:
【参考方案1】:您可以尝试使用https://github.com/maksimru/event-scheduler,将它放在您的发布者和接收者之间。它将保存您预定的消息并在指定时间发布到目标主题
【讨论】:
【参考方案2】:要使用延迟消息,您必须使用Cloud Task。您有一个示例代码here 第 67 行。
【讨论】:
问题是我有多个与报价相关的回合,每个回合都有其特定的结束日期,因此使用云任务不是一个好的解决方案,例如为数千个回合创建数千个任务跨度> 那么有没有办法在pub子消息中实现定时? 不,这是 Cloud Task 的一个特性,所以我给你这个答案。 PubSub 无法做到这一点。以上是关于谷歌云发布订阅延迟消息的主要内容,如果未能解决你的问题,请参考以下文章
将消息推送到谷歌云发布订阅后如何返回对 webflux 端点的响应?
Kubernetes pod 在使用未知证书授权调用谷歌云发布/订阅时失败