Как я могу использовать многопоточность в представлении в Django?
Итак, я развернул свое первое приложение на Digitalocean, что очень интересно, но также имеет некоторые отличия от среды разработки.
У меня есть представление, которое вызывает функцию для обновления данных, запрашиваемых из API, что занимает около 2-3 минут. Однако Digitalocean прекращает работу рабочего - по уважительным причинам - через 30 секунд, поэтому процесс прерывается.
[2022-08-21 08:40:10 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:25)
Как я могу реализовать поток для выполнения run_post_publisher()
в "фоновом режиме"?
Вот вид и упомянутая функция run_post_publisher()
, в которой я пытался реализовать поток.
def execute_post_publisher(request):
t = threading.Thread(target=run_post_publisher())
t.setDaemon(True)
t.start()
return HttpResponse(f'New post will be created')
Однако это также занимает некоторое время для запуска представления. Разве это не означает, что нужно просто выполнить поток и завершить запрос представления, а поток будет работать в фоновом режиме?