Python变量';模块/类之间的s
SiteGrab.pyPython变量';模块/类之间的s,python,class,variables,Python,Class,Variables,SiteGrab.py class ThreadManager: bla bla bla bla While True: #### Ask if/unitl all sites are resolved if allsites got = True: for i in range(allsites): HTML[i].insert(0, "this is a peice of text")
class ThreadManager:
bla bla bla bla
While True: #### Ask if/unitl all sites are resolved
if allsites got = True:
for i in range(allsites):
HTML[i].insert(0, "this is a peice of text")
break
def GetDNS(self):
global HTML
return(HTML)
from SiteGrab import *
manager = ThreadManager()
manager.start(bla, bla, bla)
_HTML_ = manager.GetDNS()
print(_HTML_)
execute.py
class ThreadManager:
bla bla bla bla
While True: #### Ask if/unitl all sites are resolved
if allsites got = True:
for i in range(allsites):
HTML[i].insert(0, "this is a peice of text")
break
def GetDNS(self):
global HTML
return(HTML)
from SiteGrab import *
manager = ThreadManager()
manager.start(bla, bla, bla)
_HTML_ = manager.GetDNS()
print(_HTML_)
我正在尝试加载一个html网站列表。我在线程中做这件事(例如5个网站=5个线程)。
我想在每个网站都完成后得到通知。换句话说,如果5个网站中的一个要超时,我不想在得到其他4个结果之前等待超时。我希望他们在结束时慢慢加入
这就是我被困的地方。我有一个GrabSite.py模块,它将结果发送到主服务器
模块。但是主模块必须询问结果
_HTML_ = manager.GetHTML()
print(_HTML_)
。。。只有在……之后才能这样做
manager.start(bla,bla,bla).
已完成。但是manager.start(bla,bla,bla)
只有在解决最后一个站点后才能完成
如何更改此选项,使结果逐渐进入execute.py
谢谢你的帮助
我想在每个网站都完成后得到通知
是谁干的?怎么用?这毫无意义。你想让它在完成后变成“必应”吗?将其添加到脚本中
我希望他们在结束时慢慢加入
流入哪里?档案?目录
execute.py
对这些站点有什么作用
你的要求毫无意义
curl site1 >file1 & curl site2 >file2 & curl site3 >file3 & ...
所有五个同时运行。没有线程,只有使用尽可能多的操作系统资源的操作系统级进程。没有等待。结果是同时出现的
想想这个
( for site in site1 site2 site3 site4 site5
do
curl $s | python execute.py &
done
)
echo "Bing!"
这将同时获得所有五个。每一个都将通过管道传输到标准输入中,以便使用simple
sys.stdin.read()
在单个线程中使用异步模型进行处理。TwistedFramework就是这样做的。您还可以使用它的CurlMulti处理程序。该模块使用它可以在一秒钟内完成1000个请求。看看Python的“多处理”模块。它包含几个正确执行多处理的选项(如使用进程池)。可以配置任意回调,例如发送结果可用性的信号。对于初学者,请发布至少通过编译器的代码(这在Python中并不太难)。另外,在类定义中执行实际工作一定是我很久以来看到的最奇怪的Python代码之一……好的,我想在每个站点完成后打印它。我想从execute.py打印它。。。不是从GrabSite.py。因此,两个模块之间的必要变量传输必须在每个站点完成时进行