From d88a95b1e9d726e83a8004e812dcd131550c3c29 Mon Sep 17 00:00:00 2001 From: pablohashescobar <118773738+pablohashescobar@users.noreply.github.com> Date: Sat, 8 Apr 2023 15:46:05 +0530 Subject: [PATCH] fix: celery worker for issue activities (#744) * dev: update celery configuration to root folder * dev: update import for celery * fix: worker to deserialize data --- apiserver/Procfile | 2 +- apiserver/plane/__init__.py | 3 +++ apiserver/plane/bgtasks/issue_activites_task.py | 14 ++++++++++++++ apiserver/plane/{settings => }/celery.py | 4 +++- apiserver/plane/settings/__init__.py | 3 --- apiserver/plane/settings/common.py | 4 ++++ 6 files changed, 25 insertions(+), 5 deletions(-) rename apiserver/plane/{settings => }/celery.py (86%) diff --git a/apiserver/Procfile b/apiserver/Procfile index 6cf9ed25b..30d734913 100644 --- a/apiserver/Procfile +++ b/apiserver/Procfile @@ -1,2 +1,2 @@ web: gunicorn -w 4 -k uvicorn.workers.UvicornWorker plane.asgi:application --bind 0.0.0.0:$PORT --config gunicorn.config.py --max-requests 10000 --max-requests-jitter 1000 --access-logfile - -worker: celery -A plane.settings.celery worker -l info \ No newline at end of file +worker: celery -A plane worker -l info \ No newline at end of file diff --git a/apiserver/plane/__init__.py b/apiserver/plane/__init__.py index e69de29bb..fb989c4e6 100644 --- a/apiserver/plane/__init__.py +++ b/apiserver/plane/__init__.py @@ -0,0 +1,3 @@ +from .celery import app as celery_app + +__all__ = ('celery_app',) diff --git a/apiserver/plane/bgtasks/issue_activites_task.py b/apiserver/plane/bgtasks/issue_activites_task.py index 809b09226..a0e5dc4eb 100644 --- a/apiserver/plane/bgtasks/issue_activites_task.py +++ b/apiserver/plane/bgtasks/issue_activites_task.py @@ -136,6 +136,7 @@ def track_priority( comment=f"{actor.email} updated the priority to {requested_data.get('priority')}", ) ) + print(issue_activities) # Track chnages in state of the issue @@ -651,6 +652,18 @@ def update_issue_activity( "cycles_list": track_cycles, "modules_list": track_modules, } + + requested_data = ( + json.loads(requested_data) + if requested_data is not None + else None + ) + current_instance = ( + json.loads(current_instance) + if current_instance is not None + else None + ) + for key in requested_data: func = ISSUE_ACTIVITY_MAPPER.get(key, None) if func is not None: @@ -786,5 +799,6 @@ def issue_activity( ) return except Exception as e: + print(e) capture_exception(e) return diff --git a/apiserver/plane/settings/celery.py b/apiserver/plane/celery.py similarity index 86% rename from apiserver/plane/settings/celery.py rename to apiserver/plane/celery.py index a01333797..1fbbdd732 100644 --- a/apiserver/plane/settings/celery.py +++ b/apiserver/plane/celery.py @@ -1,10 +1,12 @@ import os from celery import Celery -from django.conf import settings +from plane.settings.redis import redis_instance # Set the default Django settings module for the 'celery' program. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "plane.settings.production") +ri = redis_instance() + app = Celery("plane") # Using a string here means the worker will not have to diff --git a/apiserver/plane/settings/__init__.py b/apiserver/plane/settings/__init__.py index fb989c4e6..e69de29bb 100644 --- a/apiserver/plane/settings/__init__.py +++ b/apiserver/plane/settings/__init__.py @@ -1,3 +0,0 @@ -from .celery import app as celery_app - -__all__ = ('celery_app',) diff --git a/apiserver/plane/settings/common.py b/apiserver/plane/settings/common.py index aa61fab56..c144eeb0b 100644 --- a/apiserver/plane/settings/common.py +++ b/apiserver/plane/settings/common.py @@ -207,3 +207,7 @@ SIMPLE_JWT = { "SLIDING_TOKEN_LIFETIME": timedelta(minutes=5), "SLIDING_TOKEN_REFRESH_LIFETIME": timedelta(days=1), } + +CELERY_TIMEZONE = TIME_ZONE +CELERY_TASK_SERIALIZER = 'json' +CELERY_ACCEPT_CONTENT = ['application/json'] \ No newline at end of file