在node.js

时间:2018-04-03 02:05:28

标签: node.js firebase asynchronous firebase-realtime-database

我有一个应用程序,我需要不断检查人们的帖子。我正在努力确保-server-处理超过100,000个帖子。我试图解释这个程序,并用数字来指出我担心的问题。

我在终端上运行简单node.js程序,作为控制Firebase数据库的firebase管理员运行。该程序与客户端(用户)没有连接,它只是在本地保存数据库,每2-3秒检查用户的帖子。我将帖子保存在本地哈希变量中,使用on('child_added')简单地将帖子推送到帖子哈希,依此类推on('child_removed')和on('child_changed')。

  1. 这些功能是否能够每秒处理超过5个请求?
  2. 这是在本地保存数据以便加快处理速度(并且不滥用firebase限制)的正确方法?我需要每隔2-3秒检查一次平台上的每个帖子,所以我试图保留-posts数据的本地副本。

    帖子的本地副本每2-3秒循环一次。

  3. 如果有成千上万的帖子,一个简单的数组变量会处理那个加载吗?

  4. 该计划的第二部分:

    我运行for循环来遍历函数中的帖子。我使用setInterval()每2-3秒运行一次该函数。该程序不仅需要检查新添加的帖子,还需要不断检查数据库上的所有帖子。

    如果(帖子的具体条件)=>该程序改变了帖子的状态

    .on(child_changed)function =>在状态更改后向网站发送API请求

    1. 此功能可以异步运行吗?调用它时,该函数不应等待前一个调用完成,因为旧调用正在发送API请求,并且可能无法快速完成。 如何确保.on(child_changed)不会错过-posts数据的单个更改?

1 个答案:

答案 0 :(得分:1)

Listen for Value Events文档显示了如何观察更改,即使用.on方法。

在备份实时数据库方面,您只需手动导出数据,或者如果您拥有付费方案you can automate it

我不明白你为什么要重新创建轮子,可以这么说,让你的服务器ping firebase进行更新。只需使用firebase观察员。

相关问题