使用 pyngrok 时如何防止加载我的 python 程序?

我的脚本中有以下功能


import os, re


from pyngrok import ngrok


def server():

        os.system('kill -9 $(pgrep ngrok)')

        ngrok.connect(443, "tcp")

        while True:

                ngrok_tunnels = ngrok.get_tunnels()

                url = ngrok_tunnels[0].public_url

                if re.match("tcp://[0-9]*.tcp.ngrok.io:[0-9]*", url) is not None:

                        print "your url is : " + url

                        break

这负责生成一个 ngrok tcp 链接并且它可以工作,但它会卡住,如下图所示。


在此处输入图像描述

如何防止它被充电?只需打印链接,他们告诉我有关monitor_threadFalse 模式的信息,但我不知道如何在我的函数中配置它,在此先感谢您。


30秒到达战场
浏览 104回答 1
1回答

慕姐4208626

脚本“卡住”的原因是因为pyngrok启动了ngrok一个线程来监控日志,Python进程只有在处理完所有线程后才能退出。您可以停止监视器线程,如文档中所示,或者,如果您不需要它,您可以首先阻止它启动:import os, refrom pyngrok import ngrokfrom pyngrok.conf import PyngrokConfigdef server():    os.system('kill -9 $(pgrep ngrok)')    ngrok_tunnel = ngrok.connect(443, "tcp", pyngrok_config=PyngrokConfig(monitor_thread=False))    print("your url is : " + ngrok_tunnel.public_url)但是,这仍然不会做你想要的。如果你这样做,是的,你将返回到控制台,但是进程ngrok也将停止,因为此时它是 Python 的子进程。要让隧道保持打开状态,您需要让进程保持运行状态。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python