Ждать завершения asyn_task или завершить ее в фоновом режиме

У меня есть несколько функций в моем Django приложении, которые занимают много времени (скраппинг с использованием прокси), иногда это занимает более 30 секунд и убивается gunicorn и AWS сервером из-за таймаута. и я не хочу увеличивать значение таймаута.

Решение, которое пришло мне в голову - это запустить эти функции как async_task, используя django-q модуль. Возможно ли сделать следующее:

когда представление вызывает длинную функцию, запустите функцию асинхронно

  • если она возвращает результат за заранее определенное время, то возвращает результат пользователю.
  • Если нет, возвращает неполный результат и продолжает работу в фоновом режиме (Функция изменяет модель в базе данных), нет необходимости уведомлять пользователя об изменениях.
Вернуться на верх