Я намерен постоянно опрашивать пару конечных точек, где я получаю массив объектов в формате JSON. Эти объекты неизбежно меняются со временем, и каждый из них имеет уникальный идентификатор. Я хочу эффективно наблюдать за любым новым объектом в массиве (один или несколько объектов могли быть заменены новым объектом). Я хочу, чтобы избегать перебрал весь массив и сравнил идентификатор с идентификатором предыдущего массива, который я сохранил в какой-либо базе данных, потому что новый объект может быть ближе к концу массива, и я бы тратил время на выполнение всех этих сравнений.
Как бы я подошел к такому сценарию? Например. используя какую-то очередь. Является ли использование ReactiveX (RXJS) идеальным в такой ситуации?
Я работаю в Node.js для реализации.
RXJS — хорошее решение, идеальное, если вы не хотите возиться с реализацией.
В качестве альтернативы вы можете использовать Шаблон наблюдателя (подсказка, используйте EventEmitter для прослушивания изменений), идите по этому пути, если хотите владеть кодом и реализацией.
Последней альтернативой является использование модуля npm (например, это). Кажется, это соответствует шаблону проектирования Observer. Но вы можете использовать его, а также вдохновение для собственной реализации.
Но самым быстрым было бы, вероятно, пойти с RxJs.
Если конечные точки могут установить флаг, если что-то изменилось, тогда это так. Если вы не согласны со сравнением массивов n ^ 2, тогда есть хэш-карты, иначе я не могу придумать другого способа узнать, изменилось ли что-то. Вы можете вычислить какой-то хэш всего json, но вряд ли это будет быстрее, чем сравнение с хэш-картой.