На сегодняшний день Я видел, как проблема атомальности решена на уровне базы данных, где операции являются атомными, но здесь у меня есть шаг II), который работает на уровне приложения. Должен ли я решить использование сеансов/транзакций для блокировки ресурса базы данных, то есть анализа Pyndatic Model/Dict, или я разрабатываю вещи неправильно?
Например: < Br />model_dict = await db.find_one({"id": "my_model_id"}) # read from db, returns the data state as dict
model = BusinessModel.model_validate(model_dict) # convert the dict into a Pyndatic model
# when converting, Pyndatic features such as validation logics and computed fields are run automatically, changing the data
...
model.key1 = "some other processing"
...
sleep(10)
...
model.key2 = "some other processing"
model_dict_updated = model.model_dump() # convert back the Pyndatic model into a dict
await db.replace_one({"id": "my_model_id"}, model_dict_updated) # overwrite the document back into db
< /code>
Я читаю эти ссылки: < /p>
- Написать конфликты < /li>
Транзакции
Подробнее здесь: https://stackoverflow.com/questions/794 ... odels-when