Size: a a a

Django [ru] #STAY HOME

2019 September 06

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Tim
есть модель А, в ней есть какие-то текстовые поля и два поля м2м города и роли. На основе последних нужно отфильтровать полльзователей и отправить им уведомление, при создании экземпляра А
делаешь сервис создания services.create_a(...), внутри этой функции создаёшь объект как обычно и вызываешь хелпер, отправляющий сообщение в очередь, кто-то там за пределами Django это сделает, тебе не важен ответ, поэтому этот вариант оптимальный
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Pavel Zagrebelin
на м2м свои сигналы есть, может там посмотреть?
на сколько понял там сложность в том что нужно подписаться на создание A
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tim
потому что м2м к этому времени не сохраняется
celery есть ?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
сигналы плохи тем, что привязывают тебя к Django и из-за сигналов закопать Django и перейти на что-нибудь другое потом будет сложнее
источник

T

Tim in Django [ru] #STAY HOME
Dan Tyan
celery есть ?
пока нет)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
на сколько критично задержка в уведомлении ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tim
пока нет)
планируется ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
сигналы плохи тем, что привязывают тебя к Django и из-за сигналов закопать Django и перейти на что-нибудь другое потом будет сложнее
а orm не привязывает ?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Dan Tyan
а orm не привязывает ?
если привязывает только orm, которая используется только в сервисах - это будет проще отрефакторить
источник

T

Tim in Django [ru] #STAY HOME
Dan Tyan
на сколько критично задержка в уведомлении ?
не планировал. Ну, походу из-за это придется сделать. Хочешь предложить чекать периодично созданные экземпляры?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
если привязывает только orm, которая используется только в сервисах - это будет проще отрефакторить
если планируется отвязывать
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tim
не планировал. Ну, походу из-за это придется сделать. Хочешь предложить чекать периодично созданные экземпляры?
нет предлагаю создавать таск с задержкой в 5-10 секунд
источник

DT

Dan Tyan in Django [ru] #STAY HOME
там получать экземпляр А
источник

DT

Dan Tyan in Django [ru] #STAY HOME
получать город и что там еще
по ним фильтровать пользователей
и создавать таски на отправку нотификации
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Dan Tyan
если планируется отвязывать
эти решения заранее неизвестны, какие-то сервисы будут вечно на Django, какие-то могут быть даже на другой ЯП переведены
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
о! можно слушать сигнал m2m_changed action=='post_add' в модели города. A к тому времени будет уже создан.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
кстати да, думаю лучше отправлять имено в селери
источник

T

Tim in Django [ru] #STAY HOME
Pavel Zagrebelin
на м2м свои сигналы есть, может там посмотреть?
там есть только на добавление (, удаление и прочее) строк для 3-ей таблицы. + у меня два поля, которые взаимодополняемы, я не могу отдельно города слушать и отдельно роли
источник

T

Tim in Django [ru] #STAY HOME
Dan Tyan
получать город и что там еще
по ним фильтровать пользователей
и создавать таски на отправку нотификации
это celery-beat?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tim
это celery-beat?
нет просто celery
источник