SetTimeout или использовать базу данных для отслеживания следующего запуска функции? - PullRequest
0 голосов
/ 07 июня 2018

У меня есть приложение, в котором я обновляю данные из различных API и храню их локально.Данные в каждом API обновляются с разными интервалами ... 3 секунды, 15 секунд и 30+ секунд.

В данный момент я обновляю каждый API, а затем задаю setTimeout для планированияСледующее обновлениеЭто работает ... но является ли это оптимальным?

Другой вариант, который я рассмотрел, - это включить поле с именем nextUpdate в мою модель базы данных, которая принимает число (временная метка Unix), а затем выполнить запрос к базе данных один раз.в секунду для любых объектов, которые планируется обновить с помощью mongoose, например .find({ nextUpdate: { $gt: Date.now() / 1000 }).Меня беспокоило то, что это вызовет слишком много ненужных звонков (и, честно говоря, это мое первое приложение, поэтому я не знаю, сколько запросов монго в секунду считается слишком большим).В настоящее время я использую Mlab в качестве хоста базы данных.

Так вы бы продолжили использовать setTimeout?Вариант обновления базы данных, который я предложил выше?Или другое решение?

Заранее спасибо за ваше время и советы.

1 Ответ

0 голосов
/ 07 июня 2018

Я бы продолжал использовать первый подход, хотя setInterval был бы здесь более уместным.

Второй подход, похоже, имеет свои недостатки, если я что-то упустил?

(Я бы хотел оставить это как комментарий, но пока не могу оставлять комментарии)

...