如何托管不定期更新firebase数据库的守护进程?

如何托管不定期更新firebase数据库的守护进程?,firebase,google-app-engine,firebase-realtime-database,cron,google-cloud-functions,Firebase,Google App Engine,Firebase Realtime Database,Cron,Google Cloud Functions,到目前为止,我对firebase平台的客户端单页应用和数据存储留下了非常深刻的印象。然而,我有一个组件,我不知道在哪里主机 我想有一个不定期更新数据库的后台进程。何时需要更新的性质是基于外部源的,尽管知道何时可以使用更新的一般时间框架,但确切的时间并不确定。我的想法是运行一个后台任务,该任务有一些智能来确定何时需要更新,然后在那个时候触发更新 我不知道我会在哪里举办这样的活动。我考虑过在firebase函数的循环中运行它,但由于定价模型是基于时间的,这将非常昂贵,而且函数不适合于守护进程类型的进

到目前为止,我对firebase平台的客户端单页应用和数据存储留下了非常深刻的印象。然而,我有一个组件,我不知道在哪里主机

我想有一个不定期更新数据库的后台进程。何时需要更新的性质是基于外部源的,尽管知道何时可以使用更新的一般时间框架,但确切的时间并不确定。我的想法是运行一个后台任务,该任务有一些智能来确定何时需要更新,然后在那个时候触发更新

我不知道我会在哪里举办这样的活动。我考虑过在firebase函数的循环中运行它,但由于定价模型是基于时间的,这将非常昂贵,而且函数不适合于守护进程类型的进程。实际的“数据库更新”适用于函数,但不适用于触发逻辑。另外,我也看到了触发逻辑的卸载,但由于我的更新不是真正的周期性的,所以它似乎并不完全合适。我没有过多地研究AppEngine以及它与firebase平台的关系……所以基本上我的问题是:


承载始终运行的后台任务的“价格合理”的选项有哪些?谷歌应用程序引擎-标准是您想了解更多的内容。这是合理的价格,因为你所做的很可能符合GAE Std的免费每日配额。在GAE Std中,您创建了一个预定的cron作业:GAE将调用您的任务,就像它是一个传入的web请求一样


感谢您的评论。我正在考虑的复杂问题是,如果我运行cron作业,并且运行ask,它可能知道我希望根据任务的结果动态更改cron计划。例如,它可能会拨打一些REST电话,并发现在1小时内有一个即将到来的事件需要处理。使用cron功能和对云函数的调用,有没有方法合并这个反馈循环?这就是为什么我倾向于使用始终处于循环中的持久性服务。GAE-Std中有不同类型的任务。Cron任务是根据常规定义的计划调用的。您的cron任务可能会频繁地被解雇,以完成工作或识别未来工作的需要。如果需要进一步的工作,例如示例中1小时内发生的事件,则cron任务可以创建延迟为60分钟的推送队列任务。GAE Std将保留该推送队列任务,并在60分钟延迟到期时调用它。现在,我决定使用专门的heroku worker dyno来处理定时和firestore更新。我们会看到它是如何发展的!