@LakeForest

Как отправить через celery, свой созданный объеку и запустить его в rabbit celer?

File "/usr/local/lib/python3.7/json/encoder.py", line 179, in default
app_1 | raise TypeError(f'Object of type {o.__class__.__name__} '
app_1 | TypeError: Object of type ServiceTTS is not JSON serializable
  • Вопрос задан
  • 30 просмотров
Решения вопроса 1
@rodion4dev
Нужно реализовать собственный json.JSONEncoder с переопределением метода encode, который будет определять передаваемый объект, и, если он является объектом класса ServiceTTS, сериализовать данные этого объекта в простейший тип. Собственную реализацию json.JSONEncoder'а нужно указать в настройках Celery задачи; ровно так же, как собственно-реализованный json.JSONDecoder, который получит на вход простейшие данные и превратит их в объект класса ServiceTTS.

Но если Вы встали перед необходимостью "передать собственный объект через Celery", значит в вашей архитектуре что-то не так. И я предлагаю Вам не прибегать к реализации энкодера и декодера и подготавливать данные до постановки задачи в Celery.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы