0

我目前在我的 django 应用程序中使用两个数据库 - 用于存储数字数据的 mongodb 和用于处理关系和提供业务域背景的 mysql。

我有一个担心:

首先 - 我正在使用 mongoengine 以及 django 信号和自定义模板标签。意义:

每当我调用这个过滤器时。{{myobject|do_sth:"20"}} 过程是这样的:

过滤器调用 -> myobject 的 do_sth 属性,参数为“20”调用 -> 发送信号 job_done -> 接收信号 job_done -> 创建单引擎文档 -> 保存

我不知道这是否清楚,但这只是不同技术的组合-我的问题是:在这种情况下效率问题如何?有没有人尝试过该解决方案或有类似的经验?

另一个问题:由于我比较经常使用上面描述的过程,我应该关心mongodb集合中的项目数。让我们假设它会在一周内增长到 10 000,然后我们清除集合 - 可以吗?

4

1 回答 1

0

我建议对于一个简单的模板标签来说逻辑太多了,在视图本身中做可能会更好——至少这是 djangonauts 会争论的。

我认为您正在输出过滤器的结果 - 而不仅仅是调用信号以便创建数据。如果您不输出结果,则使处理脱机并且对用户无阻塞。对于长时间运行/可能阻塞的任务,我在celery上取得了巨大的成功(你不必使你的堆栈复杂化,因为 mongodb 作为队列后端工作得很好)。

MongoDB 在生产中具有跨大型集群的大量数据 - 因此 10,000 个文档是相对少量的数据。

于 2012-09-03T13:09:09.017 回答