每五分钟更新一次DB中的值

时间:2014-03-24 13:53:11

标签: javascript node.js mongodb twitter

我正在构建一个webapp,用户根据他们的Twitter活动及其在我网站上的活动进行排名。

因此,我想每五分钟更新一次排名,从twitter中提取最新活动并在我的数据库中更新。我在考虑使用这样的东西:

var minutes = 5, the_interval = minutes * 60 * 1000;
setInterval(function() {
  // my update here
}, the_interval);

但是,我对此代码有几个问题:

  1. 我应该在哪里保存它以确保它运行?
  2. 它会减慢我的程序,还是每五分钟从Twitter中取出数据是一个问题?我应该使用他们的流API吗?
  3. 注意:我正在使用mongoDB

2 个答案:

答案 0 :(得分:0)

由于Node是异步的,因此展示位置并不重要。

答案 1 :(得分:0)

我建议您创建一个计划任务/计时工作/等。 (取决于您的主机操作系统)调用一个单独的Node.JS应用程序,该应用程序执行您想要定期执行的特定任务,然后在完成时退出。 (或者您也可以使用ChildProcess

虽然Node.JS是异步的,但鉴于您提供的描述,没有必要在为Web应用程序提供服务的同一应用程序进程中执行此工作。事实上,由于它听起来像“忙碌的工作”,最好通过一个独特的流程来处理,以避免直接影响任何交互式网络用户。