Похожие чаты

Зачем тебе вообще ивенты алхимии?

8 ответов

15 просмотров

Спасибо. get_model() - это функция получения объекта модели, в монолите на фласке... Мне нужно привязаться к изменению полей сущностей карточки Контрагента( био дата, адрес, контакты и тд) К сожалению, монолит, с которым я работаю не отправляет гарантированный сигнал после коммита сущности.

Alexander
Спасибо. get_model() - это функция получения объек...

Alexander, Вы увеличили карму Pavel Павлик до 1066.93 (+7.07)

Pavel-Павлик Автор вопроса

Тогда не нужно использовать ивенты алхимии

Pavel Павлик
Тогда не нужно использовать ивенты алхимии

я пытаюсь решить проблему: когда сохраняется или обновляется контакт/контрагент у этой сущности, в ядре монолита делаются флаши, и потом коммит. Но он не гарантирован, выходит, что подписываться к их сигналу нельзя. Грубо говоря: 1) Вася меняет свою фамилию в своей карточке 2) Диспетчер слушает сигнал (document_saved) 3) Передаёт id Сущности в микросервис через редис 4) микросервис хреначит в БД и собирает нужные поля для дальнейшего формирования JSON и отправки в другие интеграции. Проблема: на микросервис приходит ID сущности раньше, чем успел примениться коммит. Асинхронные задержки после получения ID выставлять некорректно и ненадёжно, чтоб таким образом оттянуть запрос к БД и сборку новых полей.

Pavel Павлик
Тогда не нужно использовать ивенты алхимии

я, кстати, ещё вот так думал решить проблему @event.listens_for(Contractor, 'after_commit') def receive_after_commit(session): print('after commit') но у нас легаси и используется: Flask-SQLAlchemy==2.4.4 SQLAlchemy==1.3.18 а там нету 'after_commit'

Alexander
я, кстати, ещё вот так думал решить проблему @...

sqlalchemy.exc.InvalidRequestError: No such event 'after_commit' for target '<class 'models.Contractor'>'

Pavel-Павлик Автор вопроса
Alexander
я пытаюсь решить проблему: когда сохраняется или о...

Ну, так ивенты алхимии тут ни при чем. Просто отправляй все ивенты после коммита и все

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
We heading to 1.1$ 🤔?
CryptoBo$$
35
A couple thoughts from a random internet stranger: 1. If you want this project to gain traction you cannot keep being negative. If I just came here after finding out about Kd...
Eric Wild
45
Сonst magicTgHTML = (text, entities) => { let processedText = text; let offsetShift = 0; entities.forEach(entity => { const { offset, length, type, url, ...
Андрей
1
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
But what if some projects may have no sense financially but important from public relations point of view and overall adoption (which leads to more investors so more income). ...
Katu
3
Поставил генту, установил кланг, когда запускаю его не давая ему файла он выводит странную ошибку, в чем может быть дело? max@gentoo ~> clang /usr/bin/x86_64-pc-linux-gnu-ld.b...
молодой базз
8
Здравствуйте товарищи! решил всё таки поставить линукс. Порядок создание разделов /boot/efi 200МиБ; /boot 1000; подсистему / 80000; swap 8Гб Будет норм?
K2
19
How Will #Monero Be Attacked? First of all I want to tell you that this is not teaching the network attackers, the central regulators. They already know how to attack the net...
Li₿ΞʁLiøη
3
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Карта сайта