我已经得到了它和进程化的服务器24/7上运行的Python应用程序。我希望能够给一个非常简单的Web界面,使我可以监视程序中的几个变量的变化值。

我使用的是龙卷风,我起来,用简单的运行“你好,世界”,你可以找到的龙卷风首页。然而,只要tornado.ioloop.IOLoop.instance().start()被调用时,它进入循环,并没有返回。我的现有程序是(基本上)的无限循环为好,但我想在两个

整合

所以,我的问题是:我如何才能构建我的程序,这样我可以用龙卷风提供一个Web界面监控我的无限循环中的变量

有帮助吗?

解决方案

是否有可能使用threading包并运行自己的线程的龙卷风里面?

修改

在该threading模块文档 http://docs.python.org/library/threading.html 有更多的细节,但我想象的是这样的:

import threading
t = threading.Thread(target = tornado.ioloop.IOLoop.instance().start)
t.start()

让我知道,如果作品!

其他提示

我认为最好的(阅读:最简单的)方法是让你的守护程序写入要监视出来的共享间隔,你的龙卷风应用程序可以访问这些特殊变量。这可能是一个文件,一个插座,一个数据库,或key-value存储。浮现在脑海中的一些想法的想法是使用现有的数据库(如果有的话)sqlite的,甚至memcached的。然后,你只会有你的龙卷风应用程序读取您从任何地方保存它们的值。

您的是正确的,一旦你跑tornado.ioloop.IOLoop.instance().start()龙卷风的控制从循环流不会返回。从此时开始,您的应用程序的控制将保持应用程序和RequestHandlers您定义之内。

另一个不那么优雅的解决办法是利用YAML序列化从主应用程序定期对象,并在网络应用程式阅读那些。你甚至可以转储对象到YAML,所以你可以看到那些的不同状态。

您可以尝试使用 http://www.zeromq.org/ 以作为之间通信的手段到两个进程/线程

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top