1

我正在开发 Django 应用程序,100 名用户将使用该应用程序发表评论。对于每条评论,我不能做Model.save()哪个提交数据库并且不可扩展。我想使用 celery 定期提交数据库。有没有办法做到这一点?

我在 django 中检查了事务管理,但没有得到任何指示。请帮我。

我想在保存许多模型后手动提交,这应该仅限于少数模型。对于用户创建,我想立即保存并提交。仅适用于我想定期提交的帖子。

4

1 回答 1

4

你的要求是胡说八道。首先,保存和提交是两件不同的事情 - 模型实例可以(并且正在)单独保存到数据库中,而提交与事务有关并且可以涉及一个或多个数据库行。调用save()本身并不执行提交 - 默认情况下,事务基于请求/响应周期,其中事务在请求开始时打开并在响应结束时提交。

其次,完全不可能有一个单独的进程来处理提交。事务管理的重点是事务内部的内容仅对处理事务本身的连接可见。在该事务之外,就好像数据库根本没有改变。

至于可扩展性,请参阅 dgel 的评论。没有必要将您的承诺外包给一个单独的流程,特别是如果您只与“数百”个用户打交道。这是任何数据库都可以毫不费力地管理的一小部分。

于 2012-08-19T12:03:28.470 回答