From 80843502a694aafad0d0e2f6e610778922bd8f48 Mon Sep 17 00:00:00 2001 From: jain Date: Tue, 25 Jul 2023 19:13:25 +0530 Subject: [PATCH] jira-290 cron job for expired task --- account/views.py | 4 ++-- celerybeat-schedule | Bin 16384 -> 16384 bytes guardian/utils.py | 19 ++++++++++++++++++- junior/views.py | 1 + zod_bank/celery.py | 11 +++++++++++ zod_bank/settings.py | 1 + 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/account/views.py b/account/views.py index 91ff650..c95aa7e 100644 --- a/account/views.py +++ b/account/views.py @@ -22,7 +22,7 @@ from django.conf import settings """App Import""" from guardian.models import Guardian from junior.models import Junior -from guardian.utils import upload_image_to_alibaba, OTP_EXPIRY +from guardian.utils import upload_image_to_alibaba from account.models import UserDeviceDetails, UserPhoneOtp, UserEmailOtp, DefaultTaskImages, UserNotification from django.contrib.auth.models import User """Account serializer""" @@ -36,7 +36,7 @@ from base.messages import ERROR_CODE, SUCCESS_CODE from base.constants import NUMBER, ZOD, JUN, GRD from guardian.tasks import generate_otp from account.utils import (send_otp_email, send_support_email, custom_response, custom_error_response, - generate_code) + generate_code, OTP_EXPIRY) from junior.serializers import JuniorProfileSerializer from guardian.serializers import GuardianProfileSerializer diff --git a/celerybeat-schedule b/celerybeat-schedule index cd2e03e65079afc52f74f782d60c0b3e9a98a19e..816eeebd0c744921639a15bc8fa7970b63417ff1 100644 GIT binary patch delta 303 zcmZo@U~Fh$T%f?nG?`IBoQso>0SvwyPBiq|oTIRWm)F$*BE$})R&SQoGhq_ah~NQo zQY#8Fi&9hKOA?E-C+8R_8ANCTMbk?Yi&8QZ^YltfGINUcN()jFOH$*J)y5Z>B$kvG z7cx(tU?9TF;>^YVoL!PvgM~NKVDfjvsL9-hGMWM!-kRRL5sW|swF(6@fUu-cD5y}l zwooKVv$jyQwot63P&}wmVsfB?Oqyf{lSYOl5F#0tZCWUm!P{0S9aJde&5$9W0XEE_ zP!>#^6v}}N1sN+JRH#r}s0cDvskTr#0_0DKbBhaAd=IQBE-6$EDpV`g+i1wi2LKlH BP}%?h delta 528 zcmaKoO-lk%6o$QxHhFXU@cRQn+GGXdh^sa&L?oj{Q^6pCjMrN;I87es3KJOo08A>%ARgZB_l*IyA$>Y~u^D6($l4`pv4KHtS8yP(L>v(LX@qJFpPdt(c84ad^Yamg zmEy8nK^OjOEVyVa6T-W~>y`IWZXx8!a=!6x<{MQZ`fV1|`7nqpkl<2tvy=nrKV})< NEUQ4yF1^W3=?m4LlhObH diff --git a/guardian/utils.py b/guardian/utils.py index adb7f87..b1d5eda 100644 --- a/guardian/utils.py +++ b/guardian/utils.py @@ -5,6 +5,7 @@ import oss2 from django.conf import settings import logging import requests +from django.core.exceptions import ObjectDoesNotExist """Import tempfile""" import tempfile # Import date time module's function @@ -13,7 +14,10 @@ from datetime import datetime, time from base.constants import NUMBER, time_url # Import Junior's model from junior.models import Junior, JuniorPoints - +# Import guardian's model +from .models import JuniorTask +# Import app from celery +from zod_bank.celery import app # Define upload image on # ali baba cloud # firstly save image @@ -81,3 +85,16 @@ def update_referral_points(referral_code, referral_code_used): junior_query.total_points = junior_query.total_points + NUMBER['five'] junior_query.referral_points = junior_query.referral_points + NUMBER['five'] junior_query.save() + + +@app.task +def update_expired_task_status(data=None): + """ + Update task of the status if due date is in past + """ + try: + task_status = [str(NUMBER['one']), str(NUMBER['two'])] + JuniorTask.objects.filter(due_date__lt=datetime.today().date(), + task_status__in=task_status).update(task_status=str(NUMBER['six'])) + except ObjectDoesNotExist as e: + logging.error(str(e)) diff --git a/junior/views.py b/junior/views.py index 7f3452a..4ccca91 100644 --- a/junior/views.py +++ b/junior/views.py @@ -5,6 +5,7 @@ from rest_framework import viewsets, status, generics,views from rest_framework.permissions import IsAuthenticated from rest_framework.pagination import PageNumberPagination from django.contrib.auth.models import User +import datetime import requests """Django app import""" diff --git a/zod_bank/celery.py b/zod_bank/celery.py index 177c318..5cc2829 100644 --- a/zod_bank/celery.py +++ b/zod_bank/celery.py @@ -32,3 +32,14 @@ app.autodiscover_tasks() def debug_task(self): """ celery debug task """ print(f'Request: {self.request!r}') + + +"""cron task""" + + +app.conf.beat_schedule = { + "expired_task": { + "task": "guardian.utils.update_expired_task_status", + "schedule": crontab(minute=0, hour=0), + }, +} diff --git a/zod_bank/settings.py b/zod_bank/settings.py index 5415f14..3781f89 100644 --- a/zod_bank/settings.py +++ b/zod_bank/settings.py @@ -61,6 +61,7 @@ INSTALLED_APPS = [ 'django.contrib.postgres', 'rest_framework', 'fcm_django', + 'django_celery_beat', # Add your custom apps here. 'django_ses', 'account',