如何创建动态计划任务?
How to create a dynamically scheduled task?
我正在尝试创建一个模拟在栏中打开标签页的应用程序。我 运行 遇到了一个我似乎无法弄清楚的问题 - 它如下所示:
当有人打开栏标签时,动态创建一个计划任务,执行代码在 24 小时后关闭标签。
如果选项卡在 24 小时之前关闭,则取消计划任务。
- 如果选项卡在 24 小时后仍未关闭,请执行步骤 1 中描述的代码以在用于打开选项卡的卡上发起付款。
我最初是在研究 Firebase 函数,并考虑使用 setTimeout() 可调用函数,但在做了一些研究后,我发现 Firebase 函数的调用时间不能超过 9 分钟。
注意:我希望这是动态的。意思是,让它占可变数量的用户。平台上可能有 100 或 1000 个用户,他们每个人都需要能够为他们安排一个独特的计划任务(有时每个用户多个)。
请查看完整解决方案的评论。
有多种方法可以规避 10 分钟规则(这在无服务器代码中很普遍),但这里有一些可以帮助您的方法。我建议将任务分成三部分:
- 调用时关闭选项卡的云函数。
- 调用它的调度函数 (https://firebase.google.com/docs/functions/schedule-functions)
- 一种启动和停止计划功能的方法。
我不确定 firebase 函数是如何工作的,但我之前使用过 azure 函数并且可以使用命令行 (CLI) 或使用您选择的语言的 sdk 来控制这些函数。要使用命令行取消,请尝试这样的操作:
firebase functions:delete scheduledFunction
来自 。
现在剩下的就是如何弄清楚如何启动函数,以及是否可以传入一个参数来调度它。
祝你好运!
我正在尝试创建一个模拟在栏中打开标签页的应用程序。我 运行 遇到了一个我似乎无法弄清楚的问题 - 它如下所示:
当有人打开栏标签时,动态创建一个计划任务,执行代码在 24 小时后关闭标签。
如果选项卡在 24 小时之前关闭,则取消计划任务。
- 如果选项卡在 24 小时后仍未关闭,请执行步骤 1 中描述的代码以在用于打开选项卡的卡上发起付款。
我最初是在研究 Firebase 函数,并考虑使用 setTimeout() 可调用函数,但在做了一些研究后,我发现 Firebase 函数的调用时间不能超过 9 分钟。
注意:我希望这是动态的。意思是,让它占可变数量的用户。平台上可能有 100 或 1000 个用户,他们每个人都需要能够为他们安排一个独特的计划任务(有时每个用户多个)。
请查看完整解决方案的评论。
有多种方法可以规避 10 分钟规则(这在无服务器代码中很普遍),但这里有一些可以帮助您的方法。我建议将任务分成三部分:
- 调用时关闭选项卡的云函数。
- 调用它的调度函数 (https://firebase.google.com/docs/functions/schedule-functions)
- 一种启动和停止计划功能的方法。
我不确定 firebase 函数是如何工作的,但我之前使用过 azure 函数并且可以使用命令行 (CLI) 或使用您选择的语言的 sdk 来控制这些函数。要使用命令行取消,请尝试这样的操作:
firebase functions:delete scheduledFunction
来自
现在剩下的就是如何弄清楚如何启动函数,以及是否可以传入一个参数来调度它。
祝你好运!