Монгодб и Джанго
В настоящее время я работаю с двумя базами данных в моем приложении 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 документов - это относительно небольшой объем данных.