fix: 修复 celery task not found 的问题

pull/13054/head
Aaron3S 2024-04-18 14:08:49 +08:00 committed by Bryan
parent 6f2d04a029
commit d1c293940a
1 changed files with 6 additions and 4 deletions

View File

@ -129,8 +129,7 @@ def task_sent_handler(headers=None, body=None, **kwargs):
logger.error("Not found task id or name: {}".format(info)) logger.error("Not found task id or name: {}".format(info))
return return
args = info.get('argsrepr', '()') args, kwargs, _ = body
kwargs = info.get('kwargsrepr', '{}')
try: try:
args = list(ast.literal_eval(args)) args = list(ast.literal_eval(args))
kwargs = ast.literal_eval(kwargs) kwargs = ast.literal_eval(kwargs)
@ -143,13 +142,16 @@ def task_sent_handler(headers=None, body=None, **kwargs):
'name': task, 'name': task,
'state': 'PENDING', 'state': 'PENDING',
'is_finished': False, 'is_finished': False,
'args': ["too long params" if item is Ellipsis else item for item in args], 'args': args,
'kwargs': kwargs 'kwargs': kwargs
} }
request = get_current_request() request = get_current_request()
if request and request.user.is_authenticated: if request and request.user.is_authenticated:
data['creator'] = request.user data['creator'] = request.user
CeleryTaskExecution.objects.create(**data) try:
CeleryTaskExecution.objects.create(**data)
except Exception as e:
logger.error(e)
CeleryTask.objects.filter(name=task).update(date_last_publish=timezone.now()) CeleryTask.objects.filter(name=task).update(date_last_publish=timezone.now())