我创建了一个平台,健身教练可以在那里向他们的客户发布锻炼。他们有一周的计划,他们可以填满整个星期,但锻炼只会一天一天地在00:00发布。
我想添加一个功能:在特定时间配置推送通知(教练将决定何时),每天进行锻炼。例如,每天早上08:01或下午5:35。
实际上,如果我使用这个逻辑,我应该在一天中的每一分钟安排一个函数(这会太多)。例如,是否有一种方法每天在00:00启动一个函数,如果教练启用了这个功能,就可以查看我的数据库。然后,启动具有延迟的推送通知。
(我的功能是看到教练想在08:00发送通知,在09:30发送另一封通知。该功能可以发送延迟8小时的推送通知,以及延迟9小时30分钟的另一时间)
您知道我如何实现这个功能吗?
发布于 2021-01-06 11:32:54
我在一个应用程序中实现了类似的东西。我在Firebase中使用并每10分钟运行一次。
当用户提交特定时间的消息时,我会在数据库(实时数据库)中记录该时间。
云调度器启动的云功能遍历该数据库,查看用户输入的时间。如果时间在最后10分钟内,则发送消息,我将从该表中删除该条目。
要使用调度程序调用云函数,您可以创建如下函数:
exports.findScheduledEvents = functions.pubsub.topic('eventSchedule').onPublish(() => {
其中eventSchedule是我的云计划的名称。
Firebase只向您收取云计划的数量,而不是运行它们的频率。对我来说,10分钟就足够了,但是你可以每分钟运行一次。只是要小心,不要把这张桌子弄得太大。正如我所说的,我删除了条目,这样特定的表就不会变得太大,而且成本也很低。
https://stackoverflow.com/questions/65594420
复制相似问题