По моему мнению, было бы неплохо избегать решения этой проблемы с многопоточностью. Это может работать лучше следующим образом:
- Клиент отправляет JSON в API;
- API создает Задача Celery для обработки JSON, затем возвращает какой-то вид идентификатора или URL-адреса, где будет храниться результат;
- процессы задачи Celery JSON в фоновом режиме;
- Когда результат будет готов, внешняя служба может получить его с помощью идентификатора или URL-адреса с шага 2 .
По моему мнению, обработка JSON с Pandas - это не то, что вы хотели бы делать в процессе запрос-ответ, она лучше подходит для архитектуры асинхронных задач. Сегодня это может занять 0,5-1 секунды, но, возможно, завтра это займет 10 секунд и повесит ваше приложение