Отправка данных во внешний API, добавление/обновление/удаление с помощью снимков данных .NET.C#

Место общения программистов C#
Ответить
Anonymous
 Отправка данных во внешний API, добавление/обновление/удаление с помощью снимков данных .NET.

Сообщение Anonymous »

Я столкнулся с проблемой асинхронной обработки обновлений/удалений записи, которая подвергается нескольким изменениям одновременно.
Сценарий:
Всякий раз, когда в моей системе происходит добавление/обновление/удаление, я помещаю снимок данных в таблицу «очереди». Затем другая служба синхронно обрабатывает эти записи и группирует их. Проблема возникает, когда несколько записей для одной и той же сущности поставлены в очередь одновременно.
Например, мне нужно создать встречу в Teamleader для сделки X. В моей очереди есть следующие 3 записи: :
Обновить — заказ X запланирован на 11 часов.
Обновить — заказ X запланирован на 12 часов.
Удалить — заказ X удален.
Записи создаются одновременно, поэтому мои данные JSON в очереди не отражают изменения по сравнению с более ранними записями в очереди.
Текущая обработка:
Обновление (11 часов) — создает встречу для сделки X (поскольку в полезных данных заказа отсутствует внешний идентификатор встречи). Я сохраняю идентификатор собрания в заказе после создания.
Обновление (12 часов). При этом также создается новое собрание, поскольку ссылка на внешнее собрание (из первого обновления) не отражается в данные очереди еще нет, но они сохранены в базе данных.
Удалить — внешняя ссылка для идентификатора собрания не установлена, поэтому я не знаю, какое собрание удалить. Удаление всех встреч для сделки невозможно, так как могут существовать другие встречи, которые не следует удалять.
Потенциальные решения:
Получить последнюю версию данные из базы данных при обработке:
После обработки каждой записи очереди я сохраняю изменения. Это работает для обновлений, но при удалении запись уже исчезает, поэтому я не могу получить идентификатор внешнего собрания, чтобы удалить его из Teamleader.
Умная группировка записей очереди:
Я мог бы группировать связанные записи очереди (добавлять/обновлять/удалять) и обрабатывать их таким образом, чтобы более разумно обрабатывать несколько обновлений, например, игнорировать определенные обновления, если они переопределяются последующими действиями, такими как удаление.Есть ли у кого-нибудь предложения о том, как лучше всего справиться с этой ситуацией, особенно когда речь идет об управлении удалениями и множественными обновлениями одной и той же записи?
Потому что я могу представить, что это общая проблема при синхронизации данных с внешними системами.
Заранее спасибо!
Я уже пробовал получить заказ из базы данных, поэтому всякий раз, когда у меня возникает обновить, это будет работать с предыдущим установленным идентификатором. Но у меня все еще есть проблема с удалением.

Подробнее здесь: https://stackoverflow.com/questions/790 ... f-data-net
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»