Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 如何每n秒调用一个RESTAPI?_Firebase_Api_Google Cloud Functions - Fatal编程技术网

Firebase 如何每n秒调用一个RESTAPI?

Firebase 如何每n秒调用一个RESTAPI?,firebase,api,google-cloud-functions,Firebase,Api,Google Cloud Functions,我有一个Firebase云函数,它将把YouTube视频的浏览量放在标题中。这是一个https函数,因此我必须每28秒调用一次,以尽可能保持标题的准确性(由于使用配额的原因,需要28秒)。所以我的问题是如何每28秒调用一次函数 我不能使用firebase提供的发布子功能,因为我没有访问信用卡的权限。目前,我正在使用cron-job.org每分钟调用一次函数,但它们没有提供更频繁的调用。如果我需要在云函数中花费不到几分钟的时间,我通常使用简单的setTimeout()或setInterval()

我有一个Firebase云函数,它将把YouTube视频的浏览量放在标题中。这是一个https函数,因此我必须每28秒调用一次,以尽可能保持标题的准确性(由于使用配额的原因,需要28秒)。所以我的问题是如何每28秒调用一次函数


我不能使用firebase提供的发布子功能,因为我没有访问信用卡的权限。目前,我正在使用cron-job.org每分钟调用一次函数,但它们没有提供更频繁的调用。

如果我需要在云函数中花费不到几分钟的时间,我通常使用简单的
setTimeout()
setInterval()

例如:

exports.date = functions.https.onRequest((req, res) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {

      setInterval(() => {
        // do your thing every 28 seconds
      }, 28000); // 28 seconds

      res.send("ok"); // end the function after 1 minute
    }, 60000); // 1 minute
  })
});

如果我需要在云函数中花费不到几分钟的时间,我通常使用简单的
setTimeout()
setInterval()

例如:

exports.date = functions.https.onRequest((req, res) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {

      setInterval(() => {
        // do your thing every 28 seconds
      }, 28000); // 28 seconds

      res.send("ok"); // end the function after 1 minute
    }, 60000); // 1 minute
  })
});

这确实有限制,仅在功能的最大持续时间内工作,最多只能配置9分钟。在那之后,它必须再次被触发。还要记住,当函数闲置28秒时,即使它什么也不做,也要花钱。1)这会运行一分钟,所以这是最长的时间。2) 同意,但这是我唯一知道的不用信用卡的方法。如果你知道另一种方法,我很想看到答案在没有信用卡的情况下,每28秒自动运行一次?数据库触发器可以自行触发。不过,我不建议将其用于生产应用程序。我不确定我是否理解正确。你会让客户端每28秒写入一次数据库吗?当然,这也很好,尽管在这种情况下我可能会使用可调用函数。不,函数写入数据库以触发自身-请参阅源代码。只需要一个触发事件,也许通过控制台,就可以启动它。请注意,可以使用数据库中的某个位置打开和关闭该功能。该功能的最大持续时间(最多只能配置9分钟)有限。在那之后,它必须再次被触发。还要记住,当函数闲置28秒时,即使它什么也不做,也要花钱。1)这会运行一分钟,所以这是最长的时间。2) 同意,但这是我唯一知道的不用信用卡的方法。如果你知道另一种方法,我很想看到答案在没有信用卡的情况下,每28秒自动运行一次?数据库触发器可以自行触发。不过,我不建议将其用于生产应用程序。我不确定我是否理解正确。你会让客户端每28秒写入一次数据库吗?当然,这也很好,尽管在这种情况下我可能会使用可调用函数。不,函数写入数据库以触发自身-请参阅源代码。只需要一个触发事件,也许通过控制台,就可以启动它。请注意,可以使用数据库中的某个位置来打开和关闭它@Doug Stevenson我查看过它,但它需要启用计费功能。请查看使用云任务来计划HTTP函数的未来调用@道格·史蒂文森:我看过了,但它需要启用计费功能。