Вы описали две вещи, которые должны выполняться, update()
и send_ad()
.
Между ними есть ребро в графе зависимостей,
поэтому обновление должно предшествовать объявлению.
Это довольно просто. Имеем ли мы сценарий 1 в сопровождающем графе зависимости? Нет, мы имеем сценарий 2.
Мы хотим, чтобы сообщение о транзакции "купить" было отправлено одному подписчику, update(). Он будет манипулировать соответствующими базами данных, commit, и в конце отправит сообщение другому подписчику, send_ad(). В этот момент мы можем делать запросы к БД по своему усмотрению, будучи уверенными в отсутствии гонок.
Прикрепляю к посту несколько видео по теме: