【发布时间】:2012-09-13 22:45:12
【问题描述】:
对于我们的博客平台,我们有一个“文章”模型,其中包含一个“更新的”日期时间字段:
class Article(models.Model):
updated = models.DateTimeField(null=True, blank=True)
...
当任何访问者在 24 小时内第一次打开文章时,我们会对不同的模型字段进行一些耗时的计算,然后将模型保存到数据库中。有了这个,我们还将我们的“更新”字段更新为当前的 datetime.now()。
if (datetime.now() - article.updated).days > 1:
# do some time consuming calculations
article.updated = datetime.now()
article.save()
当一篇文章或多或少同时被请求时,第一次请求的耗时操作还没有完成,导致每天一次的操作在同一个对象上重新开始(article.updated 仍然是旧的)价值)。在开始计算之前另外调用 article.save() 是否有帮助?还是该数据推迟到请求完成后才保存到数据库?
【问题讨论】:
标签: database django model save simultaneous