使用Django作为长时间运行的python进程的GUI

使用Django作为长时间运行的python进程的GUI,python,django,ipc,rpc,Python,Django,Ipc,Rpc,这是一个关于建筑的问题。假设我在服务器上有一个长时间运行的过程,比如在培训期间的机器学习。现在,由于在外部机器上运行,我希望有一个工具可以随时快速查看结果。因此,我认为最好的方法是建立一个网站,该网站可以快速连接到流程,例如使用RPC显示结果,因为这样可以让我始终签入。现在的问题是Django view应该如何从服务器进程收集信息: 1) 在视图中直接使用rpyc之类的RPC调用 2) 使用诸如芹菜之类的消息队列 3) 或者以一种完全不同的方式我看不到?至少有两种可能的方法可以做到这一点 将数据

这是一个关于建筑的问题。假设我在服务器上有一个长时间运行的过程,比如在培训期间的机器学习。现在,由于在外部机器上运行,我希望有一个工具可以随时快速查看结果。因此,我认为最好的方法是建立一个网站,该网站可以快速连接到流程,例如使用RPC显示结果,因为这样可以让我始终签入。现在的问题是Django view应该如何从服务器进程收集信息:

1) 在视图中直接使用rpyc之类的RPC调用

2) 使用诸如芹菜之类的消息队列


3) 或者以一种完全不同的方式我看不到?

至少有两种可能的方法可以做到这一点

  • 将数据刷新功能实现为一个视图,并通过ajax(同步)+javascript计时器进行访问。由于您访问包含这些js的页面,它将以静默方式获取数据并更新页面。但是,当您需要以给定的频率记录所有数据时,此解决方案无法正常工作;ajax/视图仅在网页打开时执行

  • 像selcuk建议的那样使用消息队列。除了芹菜,APscheduler也是一个不错的选择,因为它更易于安装和使用。您可以实现一个状态为(queue/done/stoped/anywhich as field)的任务(作为模态)队列,并按您想要的频率检查它们,保存检索的日期,然后执行所有其他操作


  • 这个问题对于StackOverflow格式来说太宽泛了,但是通常的做法是使用芹菜来完成异步任务,比如这样的任务。