Монгодб и Джанго

В настоящее время я работаю с двумя базами данных в моем приложении django - mongodb для хранения числовых данных и mysql для обработки отношений и обеспечения фона бизнес-домена.

У меня есть одна проблема:

Во-первых, я использую mongoengine вместе с сигналами django и пользовательскими тегами тамплат. Имея в виду:

Всякий раз, когда я называю этот фильтр. {{myobject|do_sth:"20"}} процесс идет следующим образом:

вызов фильтра -> свойство my_объекта do_sth с аргументом "20" вызов -> отправить сигнал job_done -> получить сигнал job_done -> создать моноинженерный документ -> сохранить его

Я не знаю, понятно ли это, но это просто комбинация разных техник - моя проблема: какова проблема эффективности в этом случае? Кто-нибудь пробовал это решение или имеет подобный опыт?

Другой вопрос: поскольку я относительно часто использую описанный выше процесс, я должен быть обеспокоен количеством предметов в коллекции mongodb. Давайте предположим, что он вырастет до 10 000 в неделю, и чем мы очищаем коллекцию - это хорошо?

1 ответ

Я бы предположил, что это слишком много логики для простого тега шаблона, и это может быть лучше сделать в самом представлении - по крайней мере, так утверждают djangonauts.

Насколько я понимаю, вы выводите результаты фильтра, а не просто вызываете сигналы, чтобы создать данные. Если вы не выводите результаты, сделайте обработку автономной и неблокируемой для пользователя. У меня был большой успех с сельдереем для длительных / потенциально блокирующих задач (вам не нужно усложнять свой стек, так как mongodb отлично работает как серверная часть очереди).

MongoDB в производстве с массами данных в больших кластерах - таким образом, 10000 документов - это относительно небольшой объем данных.

Другие вопросы по тегам