У меня есть класс Parse.com, который называется Node
, который содержит номер столбца с именем cost
.Parse.com облачный код к итогу после сохранения
Мое клиентское приложение позволяет создавать сразу несколько узлов, которые сохраняются в Parse с помощью вызова SaveAll.
У меня тогда есть еще один класс NodeTotals
, который будет содержать общее количество всех cost
, сгруппированных по определенным критериям.
Я пытаюсь реализовать эффективный метод для выполнения итогов в облачном коде. Мой первоначальный подход должен был иметь AfterSave
функцию (на Node
), что:
- запрашивает все существующие
Node
строки, которые соответствуют моим критериям - суммирует
cost
на возвращаемые результаты - запросы увидеть, если
NodeTotal
запись существует, обновляет общее количество, если да, или создает новую запись, если нет
Но этот подход не является оптимальным. Я боюсь - по крайней мере, по следующим двум причинам:
- выполнение всех этих запросов на каждом
Node
сохранить косяк быть хорошим - если куча новых
Node
объектов создаются клиентом, который затем делает SaveAll несколько экземпляров моей функции AfterSave дозвонились параллельно - каждый из них думает, что нет существующихNodeTotal
записей, поэтому создает новый (третий пункт выше) - в результате более одногоNodeTotal
строки создаваемого там, где на самом деле должен быть только один
Я довольно уверен, что должен быть лучшим способом делать то, что я пытаюсь сделать - просто нужно немного яркой искры, чтобы указать на это!