我想在某个模型中的某个 DateTimeField 等于 datetime.now() 的值时/之后立即触发一个事件。这是一个标记产品到期的字段,所以一旦它到期,我想触发一个事件并执行一些相关代码。
如何在 Django 中做到这一点?
PS 我可以使用 Celery 来做到这一点吗,因为我打算将它用于项目的其他部分?
我想在某个模型中的某个 DateTimeField 等于 datetime.now() 的值时/之后立即触发一个事件。这是一个标记产品到期的字段,所以一旦它到期,我想触发一个事件并执行一些相关代码。
如何在 Django 中做到这一点?
PS 我可以使用 Celery 来做到这一点吗,因为我打算将它用于项目的其他部分?
您可以编写自定义管理命令,然后设置每分钟运行的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()