eventlet 提供了一种backdoor功能,就是在每一个进程的后台启动了一个telent服务器,这样可以通过远程登录来监控程序的进展情况。
{优快云:CODE:139130}
首先需要执行eventlet.monkey_patch()将程序全局改造成协程模式,此时可以发现,使用线程将不回被阻塞住。
eventlet.spawn(backdoor.backdoor_server,eventlet.listen(('localhost', 3000)), locals=backdoor_locals) 注册时候 需要指定locals
这样在使用telnet登录后 才可以调用函数,否会出现不是一个命名空间的问题。
在backdoor_locals中 指定了后台访问的命令,需要自己实现命令执行的内容。
这里实现了实现了off 项,开启/关闭打印
代码使用如下,
启动服务
通过telnet 127.0.0.1 3000 可进入交互界面
输入off()关闭打印,再次输入开启打印