安排作业在GCP Cloud Scheduler中每2秒运行一次

问题描述 投票:0回答:1

我的应用程序托管在firebase中。它是一个带有firestore数据库的角度应用程序。我目前有一个场景,我需要检查是否已经过期,然后采取行动。为此,我目前在一个应用程序引擎中运行一个节点应用程序,该应用程序引擎安排了一个每2秒运行一次的cron作业,以便对一个集合的firestore数据库进行轮询,并查看过期时间是否早于当前时间然后执行预期任务。

cron.schedule("*/2 * * * * *", fn => {
   // code here for intended task
}

由于这个2秒的cron作业,我必须在app引擎上维护一个实例。我试图看看我是否可以使用云调度程序安排工作,这样我就可以通过在app引擎中没有实例来节省一些钱。

但云调度程序的粒度只是每1分钟一次,我在几秒钟内寻找粒度,这样我就可以安排一个作业每2秒运行一次。有没有办法,我可以实现这一点,而无需在应用程序引擎上托管应用程序。

firebase google-cloud-platform google-cloud-firestore google-cloud-scheduler
1个回答
1
投票

一般来说,轮询是相当浪费的,如果可能的话,尝试用更好的东西替换它。

在您的情况下,例如,一旦设置了到期时间,您还可以确定应该执行预期任务的确切时间(即,您尝试通过轮询确定的时刻)。

在(第一代标准环境)app引擎中,我只是将预期任务排队为延迟推送任务队列项。绝对值或相对于当前时间的绝对值。无需轮询,任务将在其eta到达时执行。

我不熟悉角度/火焰基地,但在我看来,Angular Task Service API非常相似。

© www.soinside.com 2019 - 2024. All rights reserved.