python - 如何用 Django 项目构建和连接 python 项目(不是 Web 应用程序)?
问题描述
我有一个内置在 python 中的处理引擎和一个包含几个组件的驱动程序,这些组件使用这个引擎来处理一些文件。
请参见此处的图示。
引擎用于数学计算。
Driver 程序有几个组件。
- 扫描程序会持续扫描文件夹以检查新文件,如果找到则通过调用 API 进入数据库。
- 调度程序选择扫描仪创建的新条目并安排它们进行处理(进入数据库中的“作业”表)
- Executer 从作业表中选择条目并使用引擎执行它们并输出新文件。
所有组件都作为单独的 python 进程连续运行。这非常有效,我该如何改进?Django 的用途是提供一个数据库(以便多个进程可以通信)并记录处理了多少文件。
接下来是手动检查已处理文件是否有错误的新要求,因此为此开发了一个 UI。此外,对引擎的评估也将基于 API。在此处查看新的框图
现在,在我看来,整个事情都是一团糟。首先,Django 现在必须为 2 组不同的 API 提供服务——一组用于 UI,另一组用于驱动程序。如果服务器停止,UI 停止工作,驱动程序也停止工作。由于引擎是基于 API 的,因此请求中有大量数据传递给它。引擎需要几分钟(3 到 4 分钟)来处理文件,并且大多数情况下对引擎的请求都会超时。Driver 程序与终端分开启动,如果 Django 服务器未运行,则它会失败,因为需要 DB API 来安排作业和执行作业。
我想问构建此类项目的最佳方式是什么。
- 我应该将引擎和驱动程序逻辑保留在 Django 中吗?在这种情况下如何启动驱动程序?
- 我是否应该将它们都保留在 Django 之外,在这种情况下,我如何与 Django 通信,以便即使 Django 服务器关闭,我仍然可以继续处理文件。
我真的很感激任何领域的任何改进想法。
解决方案
推荐阅读
- android - 在 Android 的 ScrollView 下方查看
- algorithm - 如何在字符串中查找句子中的单词数?
- microsoft-graph-api - 使用 mail.send 时的 Microsoft Graph OrganizationFromTenantGuidNotFound
- android - Gradle 更新时出错:预期 minSdkVersion >= 21 但找到 1
- python - 如何在python中删除csv文件中的一行?
- api - 如何发送有关尝试预订 Eventbrite 门票的用户的信息?
- python - 如何使用 python 订阅 IoT Core 主题
- postgresql - 使用 distinct on 更新会违反 postgres 中的唯一键吗?
- javascript - 基于条件的嵌套组件的条件渲染
- python - 如果没有被抓到 disord.py