From ee7ac5367ef5c75841aa64539b2d4c06bfa14573 Mon Sep 17 00:00:00 2001 From: Amit Phulera Date: Fri, 3 Jun 2022 15:28:02 +0530 Subject: [PATCH] update: make _get_result_meta fn similar as of celery --- django_celery_results/backends/database.py | 45 ++++++++++++---------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/django_celery_results/backends/database.py b/django_celery_results/backends/database.py index ef97d9dd..ecdd3f5c 100644 --- a/django_celery_results/backends/database.py +++ b/django_celery_results/backends/database.py @@ -54,7 +54,23 @@ def exception_safe_to_retry(self, exc): return True return False - def _get_result_meta(self, request, traceback): + def _get_result_meta( + self, result, state, traceback, request, format_date=True, encode=False + ): + """Store return value and status of an executed task.""" + content_type, content_encoding, result = self.encode_content(result) + _, _, meta = self.encode_content( + {'children': self.current_task_children(request)} + ) + + task_props = { + 'content_encoding': content_encoding, + 'content_type': content_type, + 'meta': meta, + 'result': result, + 'status': state, + 'traceback': traceback, + } extended_props = { 'periodic_task_name': None, 'task_args': None, @@ -97,7 +113,8 @@ def _get_result_meta(self, request, traceback): 'worker': getattr(request, 'hostname', None), }) - return extended_props + task_props.update(extended_props) + return task_props def _store_result( self, @@ -108,27 +125,15 @@ def _store_result( request=None, using=None ): - """Store return value and status of an executed task.""" - content_type, content_encoding, result = self.encode_content(result) - _, _, meta = self.encode_content( - {'children': self.current_task_children(request)} + + task_props = self._get_result_meta( + result=result, state=status, + traceback=traceback, request=request ) - - task_props = { - 'content_encoding': content_encoding, - 'content_type': content_type, - 'meta': meta, - 'result': result, - 'status': status, + task_props.update({ 'task_id': task_id, - 'traceback': traceback, 'using': using, - } - - task_props.update( - self._get_result_meta(request, traceback, using) - ) - + }) self.TaskModel._default_manager.store_result(**task_props) return result