Firebase,如何实现调度程序?

Firebase,如何实现调度程序?,firebase,flutter,google-cloud-firestore,google-cloud-functions,Firebase,Flutter,Google Cloud Firestore,Google Cloud Functions,当某些信息存储在firestore中时,每个文档都在存储将来的特定时间,根据该时间,事件应该在用户的应用程序中发生 我能找到的第一种方法是云函数pub sub调度器。但是,我不能用这个,因为时间是固定的 第二种方法是使用云函数+云任务。我已经提到了这一点 这完美地执行了我真正想要的功能,但在云任务中有一个致命的缺点,因为我只能在30天内保存事件。换句话说,未来超过30天的时间不适用于此 我希望这个事件能够长期保存。我希望它在大流量情况下能稍微平稳一些。 我正在使用flifter/Firebas

当某些信息存储在firestore中时,每个文档都在存储将来的特定时间,根据该时间,事件应该在用户的应用程序中发生

我能找到的第一种方法是云函数pub sub调度器。但是,我不能用这个,因为时间是固定的

第二种方法是使用云函数+云任务。我已经提到了这一点

这完美地执行了我真正想要的功能,但在云任务中有一个致命的缺点,因为我只能在30天内保存事件。换句话说,未来超过30天的时间不适用于此

我希望这个事件能够长期保存。我希望它在大流量情况下能稍微平稳一些。 我正在使用flifter/Firebase,如何实现上述要求


感谢您阅读《新年快乐》

如果任务在30天后到期,您可以签入在文档创建时激活的功能,如果是,请将其存储在其他地方(可能是另一个文档)。然后,使用另一个流程检查任务现在是否在30天范围内,然后让它执行与新创建的任务相同的操作。第二个过程可以每星期或两周运行。

你可以考虑查看动态Con WorksSo,基本上是指,如果是60天,保存30天两次?正确的?我也想到了这个技巧,但是它有太多的任务(假设是12个月?)。因此,我不确定它是否适合大规模用户处理。我指的是分别存储30天以上到期的任务,直到它们在30天的范围内。例如,如果任务在4个月内到期,它将存储在为此目的创建的另一个集合中,并将每隔一定时间进行检查,直到它在30天范围内,然后作为任务发送。这样只会创建1个任务,而不是4个。对不起,我不明白。为什么是1?不是在4个月内创建了4个任务吗?(总计)您可以编写一个云函数,该函数将检查所有文档中的此日期字段,如果在30天内,则为其创建一个云任务。使用cron作业每30天运行一次此功能。