1
我想在特定模型中的某個DateTimeField時/之後立即觸發一個事件,該時間等於datetime.now()的值。它是一個標記產品到期的字段,所以一旦它到期,我想發起一個事件並執行一些相關的代碼。觸發基於Django中DateTimeField的值更改的操作
如何在Django中做到這一點?
P.S.我可以用芹菜做到這一點,因爲我打算將它用於項目的其他部分?
我想在特定模型中的某個DateTimeField時/之後立即觸發一個事件,該時間等於datetime.now()的值。它是一個標記產品到期的字段,所以一旦它到期,我想發起一個事件並執行一些相關的代碼。觸發基於Django中DateTimeField的值更改的操作
如何在Django中做到這一點?
P.S.我可以用芹菜做到這一點,因爲我打算將它用於項目的其他部分?
您可以編寫custom management command,然後設置每分鐘運行一次的cron job。 此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()
這個比例如何?我有一些負載平衡的Django應用程序服務器。 – Orca
您認爲每分鐘會過期多少個對象?你也可以看看像django-celery這樣的工具,它可以提供更簡化的系統 – karthikr
少量的對象 – Orca