dépend de l'échelle et de vos besoins.
Vous devrez utiliser django-céleri-beat pour les tâches périodiques: http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#beat-custom-schedulers
Je honnêtement créer une tâche de céleri qui relierait toutes les 3-5 minutes.
models.py
class Foo(models.model):
created_at = models.DateTimeField(auto_add_now=True)
expiration_date = models.DateTimeField()
views.py
import datetime
from django.utils import timezone
def add_foo():
# Create an instance of foo with expiration date now + one day
Foo.objects.create(expiration_date=timezone.now() + datetime.timedelta(days=1))
tasks.py
from celery.schedules import crontab
from celery.task import periodic_task
from django.utils import timezone
@periodic_task(run_every=crontab(minute='*/5'))
def delete_old_foos():
# Query all the foos in our database
foos = Foo.objects.all()
# Iterate through them
for foo in foos:
# If the expiration date is bigger than now delete it
if foo.expiration_date < timezone.now():
foo.delete()
# log deletion
return "completed deleting foos at {}".format(timezone.now())
un coup d'oeil à Céleri http://docs.celeryproject.org/en/latest/django/first- steps-with-django.html – Thomas