gpt4 book ai didi

Firebase Pub/Sub 触发器 : executing multiple times sporadically

转载 作者:行者123 更新时间:2023-12-02 21:58:37 26 4
gpt4 key购买 nike

我们的应用使用 Firebase,该应用需要处理一些数据,然后在确定数据后发送一系列电子邮件。

现在,我通过 CRON(使用 pub/sub)触发单个处理程序来处理数据,然后将一系列消息发布到不同的 pub/sub 主题。该主题又具有类似的触发功能,该功能会经历几个流程,然后每次执行时发送一封电子邮件。

// Triggered by CRON task
const cronPublisher = functions.pubsub.topic('queue-emails').onPublish(async () => {
//processing
...
// Publish to other topic
await Promise.all(
emails.map((email) =>
publisher.queueSendOffer(email)
)
);
});

// Triggered by above, at times twice
const sendEmail = functions.pubsub.topic('send-email').onPublish(async () => {
//processing and send email
});

我遇到的问题是第二个主题触发器有时被执行多次,发送两封相同的电子邮件。我通过 Google 遇到的主要潜在原因只是执行时间过长,导致超时和重试。 不应该出现这种情况,因为我们的确认超时配置为 300 秒,并且执行时间永远不会超过约 12 秒。

此外,Firebase 界面似乎无法让您控制此确认的发送方式。

此 CRON 函数每天运行,问题仅每 4-5 天发生一次,但随后它会重复每封电子邮件。

有什么想法吗?

感谢。

最佳答案

如果“每条消息”都是重复的,也许是您的“cronPublisher”函数被调用了两次? Cloud Pubsub 至少提供一次语义,因此您的工作应该容忍此 https://cloud.google.com/pubsub/docs/subscriber#at-least-once-delivery .

如果您要在已收到此 cron 事件的 Firebase 事务中保留一些信息,并在发布之前进行检查,则可以防止重复发布到“send-email”主题。

关于Firebase Pub/Sub 触发器 : executing multiple times sporadically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53307957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com