как вернуть 200OK до завершения функции - PullRequest
2 голосов
/ 22 апреля 2020

Я пишу бота для Вконтакте на Django (2.2.4) , с библиотекой vk_api

Некоторые из функций довольно длинные (выполняются за 5- 7 секунд) . Но Вконтакте требуется, чтобы сервер отвечал не более 3 секунд . Если ответ задерживается, запрос отправляется снова, и бот начинает отправлять одно и то же сообщение много раз через некоторое время. (Я использую API обратного вызова)

Я кратко опишу мою проблему

  • моя функция работает более 6 секунд

  • ответ 200OK должен быть отправлен менее чем за 3 секунды

Возможно ли решить эту проблему без основные изменения в коде?

# views.py
@csrf_exempt
def MainBotView(request):
    # i need something like return HttpResponse('ok') here

    ... my slow code ...

    return HttpResponse('ok') # but I don't need it at the end

(я использую pythonany везде, и Celery, возможно, там не работает)

Должен ли я использовать многопоточность? Как?

...