ブログプラットフォームには、「更新された」日時フィールドを含む「記事」モデルがあります。
class Article(models.Model):
updated = models.DateTimeField(null=True, blank=True)
...
訪問者が24時間以内に初めて記事を開いたとき、さまざまなモデルフィールドで時間のかかる計算を行い、その後モデルをデータベースに保存します。これにより、「updated」フィールドも現在のdatetime.now()に更新されます。
if (datetime.now() - article.updated).days > 1:
# do some time consuming calculations
article.updated = datetime.now()
article.save()
記事がほぼ同時にリクエストされた場合、最初のリクエストでの時間のかかる操作はまだ終了していないため、同じオブジェクトで1日1回の操作が再開されます(article.updatedには古い値が残っています)。計算を開始する直前にarticle.save()を追加で呼び出すのに役立ちますか?または、このデータはデータベースへの保存からリクエストが完了するまで延期されましたか?