feat: 添加定时任务以标记mtask为已完成

This commit is contained in:
caoqianming 2025-08-28 16:08:18 +08:00
parent 786e885071
commit 5e9c15c4a5
1 changed files with 24 additions and 0 deletions

24
apps/pm/tasks.py Normal file
View File

@ -0,0 +1,24 @@
# Create your tasks here
from __future__ import absolute_import, unicode_literals
from apps.pm.models import Mtask, Utask
from apps.utils.tasks import CustomTask
from celery import shared_task
from datetime import datetime, timedelta
from django.db.models import F
from apps.pm.services import PmService
@shared_task(base=CustomTask)
def complete_mtask():
"""
将2天前未提交的任务且数量已达标的任务标记为已完成
"""
now = datetime.now().date()
mtasks = Mtask.objects.filter(state=Mtask.MTASK_ASSGINED,
end_date__lte=now-timedelta(days=2),
count_ok__gte=F('count'))
mtasks.update(state=Mtask.MTASK_SUBMIT)
utasks = Utask.objects.filter(id__in=mtasks.values_list("utask__id", flat=True))
for utask in utasks:
PmService.utask_submit(utask=utask, raise_e=False)