如何为多个用户运行异步任务

时间:2019-01-29 23:10:47

标签: javascript node.js express asynchronous

所以我为学校设计了这个项目,该项目是关于“触发”社交网络的。

让我解释一下: -用户可以注册我们的应用程序并登录 -他可以登录使用多种服务,例如Facebook,Twitter等。 -然后,这就是我们所说的触发器,一旦他登录了我们的应用程序并注册了服务,每次他将在Twitter上发布内容时,例如我的服务器也将其发布并在Facebook上发布。

一个月前我对node.js一无所知,所以我对所有这些异步知识都还很陌生,但我还是学了一些方法来帮助自己。到目前为止,我现在可以管理用户了,等等(我再次进行了有关oauth的研究)。

我最大的问题是服务器上的此“实时”更新。 我的意思是我在互联网上搜索后看到了所谓的轮询(?),即每X秒频繁向服务器发出请求的想法。

因此,使用一些sudo代码,我将看起来像这样:

For each User
   asynchronously watch for every update on Facebook and Twitter for 
   this User

所以我对每秒执行请求进行了一些研究,发现了关于setInterval和setTimeout

const watchSocialMedia = setInterval(function(){
  Users.forEach(user => {
        User.watchAndPostAnyNewPost() //
   } 
}, 60000);

因此,我放置了一些虚拟数据进行说明。 问题是我不认为会异步完成吗?

我的意思是,理想的情况是我是否可以为每个用户安排一次“观察者”之类的话?

For each User
  User.watchAndPostAnyNewPost()

其中watchAndPostAnyNewPost()看起来像这样

class User () {
 ...

 const watchAndPostAnyNewPost = setInterval(function(){
     fetchFacebook();
     fetchTwitter();
  }, 60000);
}

因此,每个用户都在运行自己的setInterval函数,以检查他是否发布了任何内容

任何人都可以告诉我是否有可能? :-)

非常感谢您阅读!!

0 个答案:

没有答案