Мне нужно создать отчет с некоторыми данными, и иногда он становится огромным, и на его завершение уходит до 20 минут.Использование сельдерея только для этого не оправдывает затраты, поэтому я застрял, запуская поток для выполнения обработки в фоновом режиме.
Я прочитал о многопроцессорной обработке с помощью django, и оказалось, что я должен закрыть все соединения вручную,в противном случае я получу активные подключения, дублированные в поток.Я не уверен, что это все-таки вещь, но я все равно это сделаю.
В настоящее время я просто вызываю метод close_all, и django, похоже, восстанавливает их как в родительском, так и в дочернем потоке.
db.connections.close_all()
thread = threading.Thread(target=build_export_method)
thread.setDaemon(True)
thread.start()
Этого достаточно, чтобы предотвратить задержку нежелательных соединений БД?