python - 使用 Django 作为 GUI 进行长时间运行的 python 进程
问题描述
这是一个关于建筑的问题。假设我在服务器上有一个长时间运行的过程,例如在训练过程中的机器学习。现在,当它在外部机器上运行时,我想要一个工具来快速查看结果。所以我认为最好的方法是建立一个快速连接到进程的网站,例如使用 RPC 来显示结果,因为这允许我始终签入。现在的问题是 Django 视图应该如何从服务器进程中收集信息:
1)直接在视图中使用rpyc等RPC调用?
2) 使用某种消息队列,例如 celery ?
3)或者以我没有看到的完全不同的方式?
解决方案
至少有两种可能的方法来做到这一点。
将你的数据刷新功能实现为一个视图,并通过ajax(sync)+javascript计时器访问它。由于你访问了包含这些js的页面,它会静默地获取你的数据并更新页面。但是,当您需要以给定频率记录所有数据时,此解决方案效果不佳;ajax/view 仅在网页打开时执行。
使用 selcuk 建议的消息队列。除了 celery,APscheduler 也是一个不错的选择,因为它更易于安装和使用。您可以实现一个任务(作为模式)队列,状态为(队列/完成/停止/任何作为字段)并检查它们以您想要的频率,保存您检索的日期并执行所有其他操作。
推荐阅读
- android - Facebook 兴趣广告未显示
- javascript - 无法在 React 中访问函数内部状态变量的正确值
- kotlin - 在地图上使用 getOrDefault() 和 elvis 运算符之间的区别
- c# - RaiseEvent 有效,在 C# 中也一样 - 不
- selenium - 使用 JMeter Webdriver (Plugin Selenium) 制作 HTTP Header Manager 并在 Dynatrace 中查看结果
- r - 我该如何为此编写一个 for 循环?
- vue.js - i18n vue 2 cli 中是否存在语言更改事件?
- python - GPIO.input() == GPIO.LOW 时的中断 time.sleep()
- elixir - 在 phoenix LiveView 中使用外部库
- python - Django 和 mongodb 错误:E11000 重复键错误 { id: null }