Как изолировать транзакции (выполнение цепочек правил) в ThingsBoard - PullRequest
0 голосов
/ 06 мая 2019

Я ищу подсказки о том, как работать с изоляцией транзакций в моих цепях правил. Я предполагаю, что цепочки правил могут быть запущены параллельно на одном устройстве.

Допустим, цель состоит в том, чтобы:

  1. Считывание состояния устройства
  2. Если состояние устройства не X, событие пожара (электронная почта)
  3. Установить состояние устройства на X

Как я могу гарантировать, что выполнение двух параллельных цепочек правил не вызовет условия гонки (например, электронная почта сработала дважды)?

Одним из решений может быть получение снимка состояния устройства в начале цепочки правил и действие по нему во всей цепочке, но я пока не уверен, есть ли способ передать эти данные, не влияя на общую объект (например, есть ли способ передать метаданные через выполнение одной цепочки правил?). Это всего лишь одна идея. Ищу предложения.

Я сейчас использую сервер Profession / Shared. Я могу только предположить, что он использует серверную часть NOSQL.

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