Size: a a a

2019 June 27

RB

Roman Bolkhovitin in rannts
там сейчас простая реплика, без шардов. но если в итоге придется расшардить, то да, печаль

а так монго это данность, я ее не выбирал
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Serg
Ребят, а подскажите .. сел впервые за celery..
Есть django, celery, rabbit
- Из вьюхе создается Таска
- В таске надо отправить get запрос на стороннее АПИ и сохранить ответ в Базу

*Для отправки запроса обычную либу requests чтоли юзать?
*Еще правильнее сигнал отлавливать на создание таски, или прям в теле вьюхе таску создавать?

И еще хотел воркер запускать с eventlet-ом..
Правильнее таску ставить при коммите транзакции, если твоя вьюха что-то меняет в базе. А то таска может стартовать раньше чем у тебя завершится транзакция, и она не увидит изменений, которые сделала вьюха. Или если вьюха у тебя упадёт по какой-то причине, а таска всё равно отработает.
Вроде как должна быть там возможность в джанге вешать калбяки на успешное завершение транзакции.
источник

S

Serg in rannts
Kirill (Cykooz) Kuzminykh
Правильнее таску ставить при коммите транзакции, если твоя вьюха что-то меняет в базе. А то таска может стартовать раньше чем у тебя завершится транзакция, и она не увидит изменений, которые сделала вьюха. Или если вьюха у тебя упадёт по какой-то причине, а таска всё равно отработает.
Вроде как должна быть там возможность в джанге вешать калбяки на успешное завершение транзакции.
да сигналы есть при записи в базу
источник

S

Serg in rannts
👍 спасибо
источник

RB

Roman Bolkhovitin in rannts
Kirill (Cykooz) Kuzminykh
Если у тебя уже готовый проект на монге и выбирать другую базу не вариант, то придётся конечно крутится с монгой
а есть какие-то варианты без транзакции пакетный апдейт коллекции сделать нормально?
источник

RB

Roman Bolkhovitin in rannts
не нравится мне, что они в такой конфигурации работают, в другой не работают. дичь какая-то
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Хрен знает как. Использовать "кастомные" транзакции. Что то там писали про дфухфазный коммит. Не знаю как это применить к update-у.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Ну или просто предусмотреть в коде возможность ситуации когда обновилось не всё и не атомарно
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Сделать доп. крон-таски, которые будут "восстанавливать" консистентность базы. Весь остальной код писать из предположения что данные могут быть в промежуточном состоянии, соответствующим образом строить модели документов
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
У нас вот какого только дерьма в этой монге не происходит.
Может даже оказаться в коллекции документы, с неполным набором полей, которые они должны иметь. И как такое там появляется - хрен знает.
источник

RB

Roman Bolkhovitin in rannts
)))
спасибо за мысли, покумекаю
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Причём вот такие покорапченые документы уже не первый раз встречаем.
источник

알렉산드르 in rannts
Roman Bolkhovitin
Привет. Странного хочу - можно как-нибудь у монги реплику сет замутить из единственного контейнера?
Захотелось транзакций, они работают только с реплика сет, а у нас на всех тестовых окружениях просто инстанс монги, реплика только на стейджинге запилена
а почему не в 3х сделать?
источник

RB

Roman Bolkhovitin in rannts
알렉산드르
а почему не в 3х сделать?
потому что и тестовые и девелоперские окружения на 1 и лень ))
а вообще оно на 1 норм завелось, почти из коробки. только ip в конфиг реплики надо руками прописать чтобы с хоста можно было ходить )
источник

알렉산드르 in rannts
вы все все в одном контейнере запускаете?
источник

RB

Roman Bolkhovitin in rannts
ну зачем же так сразу? ))) в компоузе, но монга одна )))
источник

💭П

💭 Руслан Прохоров in rannts
источник

D

Denis in rannts
источник

AS

Andrey Setyaev in rannts
источник

AG

Alexander Gorokhov in rannts
Берем
источник