Skip to content

Commit 72df019

Browse files
committed
check json serialization
1 parent 2eba64e commit 72df019

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

taskbadger/celery.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import collections
22
import functools
3+
import json
34
import logging
45

56
import celery
@@ -191,9 +192,16 @@ def task_publish_handler(sender=None, headers=None, body=None, **kwargs):
191192

192193
global_record_task_args = celery_system and celery_system.record_task_args
193194
if headers.get("taskbadger_record_task_args", global_record_task_args):
194-
data = kwargs.setdefault("data", {})
195-
data["celery_task_args"] = body[0]
196-
data["celery_task_kwargs"] = body[1]
195+
data = {
196+
"celery_task_args": body[0],
197+
"celery_task_kwargs": body[1],
198+
}
199+
try:
200+
json.dumps(data)
201+
except Exception:
202+
log.error("Error serializing task arguments for task '%s'", name)
203+
else:
204+
kwargs.setdefault("data", {}).update(data)
197205

198206
task = create_task_safe(name, **kwargs)
199207
if task:

0 commit comments

Comments
 (0)