Мультипроцессинг с Django - PullRequest
       4

Мультипроцессинг с Django

0 голосов
/ 05 октября 2018

Мне нужно создать отчет с некоторыми данными, и иногда он становится огромным, и на его завершение уходит до 20 минут.Использование сельдерея только для этого не оправдывает затраты, поэтому я застрял, запуская поток для выполнения обработки в фоновом режиме.

Я прочитал о многопроцессорной обработке с помощью django, и оказалось, что я должен закрыть все соединения вручную,в противном случае я получу активные подключения, дублированные в поток.Я не уверен, что это все-таки вещь, но я все равно это сделаю.

В настоящее время я просто вызываю метод close_all, и django, похоже, восстанавливает их как в родительском, так и в дочернем потоке.

db.connections.close_all()
thread = threading.Thread(target=build_export_method)
thread.setDaemon(True)
thread.start()

Этого достаточно, чтобы предотвратить задержку нежелательных соединений БД?

...