Как запускать асинхронные задачи для нескольких пользователей - PullRequest
0 голосов
/ 30 января 2019

Итак, у меня есть этот проект для школы, который посвящен "триггерам" для социальных сетей.

Позвольте мне объяснить: - Пользователь может зарегистрироваться для нашего приложения и войти в систему - Он может войти в систему для нескольких служб, таких какFacebook, 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, запускающая его, чтобы проверить, отправил ли он что-нибудь

Кто-нибудь может сказать мне, если это вообще возможно?: -)

Спасибо, что читаете меня !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...