我正在尝试使用 celery 执行定期任务,以删除未及时激活帐户的用户。下面的屏幕截图显示该任务已正确发现并执行,但是当我检查数据库时,没有进行任何更改。
芹菜任务:
#tasks.py
from celery.task.schedules import crontab
from celery.decorators import periodic_task
from celery.utils.log import get_task_logger
from .utils import unconfirmed_users_delete
logger = get_task_logger(__name__)
# A periodic task that will run every minute (the symbol "*" means every)
@periodic_task(run_every=(crontab(hour="*", minute="*", day_of_week="*")))
def delete_unconfirmed_users():
return unconfirmed_users_delete()
要执行的查询集(在 django shell 中检查并正常工作):
#utils.py
from django.contrib.auth.models import User
from django.utils import timezone
def unconfirmed_users_delete():
return User.objects.filter(is_active=False).filter(profile__key_expires__lt=timezone.now()).delete()
该任务每分钟正确调用一次:
有什么问题?