При генерации PDF из HTML в Django с помощью PyQT5 сервер падает несколько раз. Почему?

При генерации PDF из HTML в Django с помощью PyQT5 приложению удается сгенерировать файл только несколько раз, а через некоторое время сервер падает. Почему?

Я хочу создать простую конечную точку, которая получает некоторые параметры от front и затем генерирует PDF файл. Я пробовал использовать pdfkit, weasyprint и PyPDF2, но я ищу что-то без внешних зависимостей, как wkhtmltopdf. Вот мой код:

class Utils():
@staticmethod
def generate_pdf(data):

    #jinja2 template
    template = templateEnv.get_template("template_nota_debito_jinja.html") 

    html = template.render(data)
    temp_file_name = f"{STATIC_PATH}/temp_template.html"
    path  = f"{STATIC_PATH}/temp_template.html"
    with open(temp_file_name, "w", encoding="utf8") as fh:
        print(html)
        fh.write(html)

    try:
        app = QApplication(sys.argv)
        layout = QPageLayout()
        layout.setPageSize(QPageSize(QPageSize.A4Extra))
        layout.setOrientation(QPageLayout.Portrait)
        loader = QtWebEngineWidgets.QWebEngineView()
        loader.setZoomFactor(1)
        loader.page().pdfPrintingFinished.connect(  lambda *args:(app.exit())) 
        loader.load(QUrl.fromLocalFile(path))

        def emit_pdf(finished):
            #loader.show()
            loader.page().printToPdf(f'{STATIC_PATH}/test.pdf', pageLayout=layout)
            
        loader.loadFinished.connect(emit_pdf)

        app.exec()
    except Exception as e:
        print(e)
    finally:
        os.remove(path)
        return f'{STATIC_PATH}/test.pdf'

При первом и втором вызове API файл возвращается с сервера, как и ожидалось, но после этого приложение django просто завершает работу. Может ли кто-нибудь сказать что-нибудь об этом?

Вернуться на верх