Django - 如何定期提交数据库

时间:2012-08-19 10:24:41

标签: django celery

我正在开发Django应用程序,100个用户将使用它来发表评论。对于每个评论,我不能做Model.save()提交数据库而不是可扩展的。我想定期使用芹菜提交数据库。有没有办法做到这一点?

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

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

1 个答案:

答案 0 :(得分:4)

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

其次,单独的流程完全不可能完成提交。事务管理的重点在于事务内部只有 对处理事务本身的连接是可见的。在该事务之外,就好像db根本没有改变。

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