API связь для обновления всех пользователей - PullRequest
0 голосов
/ 18 октября 2019

Итак, у меня сейчас проблема с ресурсами, я надеялся, что кто-нибудь сможет помочь. По сути, у меня есть таблица postgreSQL с двумя типами пользователей: администраторы и клиенты, хранящиеся в двух разных таблицах, администратор и клиенты соответственно. Каждый клиент назначается группе, которая хранится как целочисленное значение в своей пользовательской таблице. Есть еще одна таблица, содержащая задачи, которая содержит идентификатор администратора, идентификатор группы и содержание задачи. Существует два API (построенных с использованием loopback4 (node ​​js)), один из которых связан со способностями администратора, задачами публикации и т. Д., А другой - со способностями пользователей, обновляет состояние задач (ожидает, завершен, отменен). Аналогичным образом, существуют два интерфейса, построенных с использованием собственного реагирования, один для администраторов и один для клиентов. Чтобы продемонстрировать это, я нарисовал таблицу ниже:

enter image description here

Таблица пользователей выше принадлежит клиентам. Один для администраторов не имеет идентификатора группы.

Администраторы могут публиковать задачи, а клиенты могут изменять их. Таксы, которые подпадают под определенную группу, должны быть параллельными. Например, если есть задачи для печати бумаги, ее следует получить на всех клиентских клиентских компьютерах в этой группе, и если один клиент печатает бумагу и обновляет ее как штампованную, то все клиенты в этой группе должны видеть эти задачи. как завершено. В основном задачи принадлежат группе, а не отдельному пользователю, поэтому любые обновления, внесенные в задачи, должны отражаться на всех клиентах, принадлежащих к этой группе. Прямо сейчас для каждого клиента я опрашиваю задачи каждую секунду, чтобы получить обновленный список задач. Как можно заставить клиентский API получать обновление от API администраторов о том, что была создана новая задача, а затем чтобы клиентский API передавал эти новые данные клиентам, принадлежащим к группе, для которой был создан этот новый заказсоздано. Это также должно произойти, если клиент обновляет задачу для группы, и все остальные клиенты, принадлежащие к группе, должны получить эти новые данные. Как это можно сделать?

Я хотел, чтобы это было масштабируемым, поэтому, если оно работает в облаке и существует несколько экземпляров, это не должно влиять на функциональность.

...