Я сопоставляю элементы из двух списков, например, здесь будет соответствовать элемент c из A и c из B. Затем я делаю некоторую обработку и добавляю соответствующую пару в другой список.Firebase: Убедитесь, что действие выполняется только один раз с использованием нескольких рабочих
- List A
- a
- b
- c
- List B
- c
- d
Для этого я наблюдаю за того на обоих списка А и Б, а также проверить, если совпадение существует, когда добавляется что-то.
Это хорошо работает, но у меня слишком много вставок для одного клиента.
Так что мне нужно запустить мой помощник на нескольких машинах, чтобы ускорить работу.
Но я хочу, чтобы каждое совпадение происходило только на одной машине, т. Е. Если машина 1 находит совпадение, то для машины 2 нет смысла обрабатывать ее.
Я попытался использовать atomic commits, но в то время как это предотвращает совпадение нескольких совпадений друг с другом, совпадение выполняется еще дважды.
Как я могу заблокировать элементы, чтобы убедиться, что другие машины не рассматривают их после начала процесса сопоставления?