python - Django:并行运行几个任务

标签 python django python-multiprocessing

我有一个基于 Django 版本 2.0.1 构建的 Web 应用程序

用户上传文件,根据内容,有一些以串行方式执行的任务。执行后结果显示给用户。有些任务是相互独立的。

我想并行执行独立的任务。我尝试在 views.py 内使用多处理但是当进程生成时会抛出一些错误。这些任务分析一些信息并写入文件。然后将这些文件组合起来向用户显示结果。

这些任务无法异步完成,因为生成的结果需要显示给正在等待的用户。因此,我放弃了按照其他讨论中的建议使用 Celery 的想法。

任何人的建议都会有帮助。

谢谢

出现错误

这是我们得到的错误Traceback(最近一次调用是最后一次): C:\Users\idea\AppData\Local\Enthought\Canopy\edm\envs\python\lib\multiprocessing\spawn.py”,第 106 行,在 spawn_main 中 退出代码 = _main(fd) 文件“C:\Users\idea\AppData\Local\Enthought\Canopy\edm\envs\python\lib\multiprocessing\spawn.py”,第 116 行,在 _main 中 self = pickle.load(from_parent) 文件“G:\work\gitrepo\suprath-github\smartdata\ssd\FinalPlots\uploads\core\views.py”,第 6 行,位于 从 uploads.core.models 导入文档 文件“G:\work\gitrepo\suprath-github\smartdata\ssd\FinalPlots\uploads\core\models.py”,第 7 行,位于 类文档(模型.模型): 文件“C:\Users\idea\AppData\Local\Enthought\Canopy\edm\envs\python\lib\site-packages\django\db\models\base.py”,第 100 行,位于 new app_config = apps.get_containing_app_config(模块) 文件“C:\Users\idea\AppData\Local\Enthought\Canopy\edm\envs\python\lib\site-packages\django\apps\registry.py”,第 244 行,在 get_containing_app_config 中 self.check_apps_ready() 文件“C:\Users\idea\AppData\Local\Enthought\Canopy\edm\envs\python\lib\site-packages\django\apps\registry.py”,第 127 行,在 check_apps_ready 中 raise AppRegistryNotReady(“应用程序尚未加载。”) django.core.exceptions.AppRegistryNotReady:应用程序尚未加载。 回溯(最近一次调用最后一次):

最佳答案

These tasks cannot be done asynchronous as the results produced needs to be shown to the user waiting

这并不意味着您不能使用异步队列(celery 或其他队列)。我们有一个非常相似的用例,并且确实使用 celery 来运行任务。任务(部分并行,部分串行)将其进度存储在redis中,前端轮询以获取当前状态并向用户显示进度,然后当整个过程完成时(无论成功与否)我们显示结果(或错误)。

关于python - Django:并行运行几个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50405413/

相关文章:

python - Django 在速记渲染方法中添加自定义 header

python - Pylons/SQLAlchemy 和 MySQL 的导入错误

python - 如何只指定位置而不指定 tkinter 窗口的大小?

Django ORM 分别查询正负值的总和

django - 在 Django 中间件中测量 View 执行时间 - 好主意吗?

python - 队列空方法坏了吗?

python - Python 中的多处理 : how to implement a loop over "apply_async" as "map_async" using a callback function

python - 作为服务让 PubNub 订阅者保持事件状态 (Python SDK)

python - 如何从 `nl` 脚本求解器中从 `pyomo` 获取 `pyomo` 文件?

python - Celery 动态添加任务到链