Firebase云功能计时器优化

时间:2018-10-23 17:19:14

标签: node.js firebase google-cloud-functions

我不太确定如何计算云函数调用和CPU秒数,所以我的问题仅此而已。

我正在使用一个计时器(5min-6h),用户应该无法操作它,而且即使客户端不再连接/处于活动状态,它也必须继续运行。 为此,我有2个解决方案:

  1. 设置时间,每秒检查一次,每次将剩余时间写入数据库,如下所示:

    let endsAt = Date.now();
    endsAt += milliseconds;
    
    const timeout = setInterval(countDown, 1000);
    function countDown() {
      setTime(Math.max(0, (endsAt) - Date.now()));
    }
    
    function setTime(remaining) {
      if(remaining > 0){
        timeReference.set(remaining);
      } else{
        timeReference.set(0);
        clearInterval(timeout);
      }
    }   
    

客户端只需要实现一个侦听器即可检查剩余时间是否为0。

  1. 另一种方法是只将End-Time(endsAt)写入数据库,并且每次用户每次看到计时器以检查时间是否结束时都仅调用一次函数。可以通过使用数据库中的结束时间在客户端上简单地实现Timer,但是客户端还必须每次而不是一次调用该功能。

就成本优化而言,以上哪种解决方案是更好的方法?当然也欢迎其他建议。

0 个答案:

没有答案