我在这里有一个独特的问题。我实际上需要安排一项任务,以便在特定时间向符合条件的用户发送电子邮件。我检查并发现调度 cron 作业可以解决问题。但是,就我而言,我需要根据特定用户何时满足特定条件以编程方式安排这些任务。
这是我的场景
现在的问题
我提出的解决方案
请问有没有办法为我的案例实现这个或任何其他好的解决方案?
最佳答案
与其尝试动态创建计划函数,不如考虑让单个函数按固定计划运行,然后在该函数内部实现计时逻辑。
因此,与其说“我需要安排一个从现在起运行 3 小时后向这 5 个人发送消息的函数”,而是将其视为可以写入数据库的任务:“在 x:yz 发送电子邮件至这 5 个人”,然后有一个定期的云功能来检查它需要执行哪些任务。
另见 Delay Google Cloud Function , How to use scheduler for Firebase Cloud Functions with Realtime Database/Analytics triggers?
或者,您可以使用 Cloud Scheduler 为要执行的特定操作创建任务,然后通过 PubSub 将其发布到 Cloud Functions。
作为更新的替代方案:使用具有 API 的单独调度程序服务来创建调度,例如 Cloud Tasks。 Doug 在 How to schedule a Cloud Function to run in the future with Cloud Tasks (to build a Firestore document TTL) 中写了一篇很棒的文章。
关于firebase - 如何以编程方式在 firebase 中创建 cron 作业,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56074188/