1

特定のモデルの特定の DateTimeField が datetime.now() の値と等しい/直後にイベントを発生させたいと考えています。これは製品の有効期限をマークするフィールドであるため、有効期限が切れたらすぐにイベントを発生させ、関連するコードを実行したいと考えています。

Djangoでそれを行う方法は?

PSプロジェクトの他の部分でとにかく使用する予定なので、Celeryを使用してそれを行うことはできますか?

4

1 に答える 1

1

カスタム管理コマンドを作成してから、毎分実行されるcron ジョブを設定できます。この cron は期限切れのオブジェクトをポーリングし、関連するコードを実行します。

import datetime
from django.core.management.base import BaseCommand

def compute_inactivity():
    expired_objects = MyModel.objects.filter(datetime__lte=datetime.datetime.now())
    for obj in expired_objects:
        #Take the necessary action

class Command(BaseCommand):

    def handle(self, **options):
       compute_expiry()
于 2013-07-22T14:46:26.620 に答える