Проблема в том, что пока эта строка короткая (10-15 кб) - всё нормально. Когда строка становится 60 кб - комп 2 минуты пыхтит чтобы вывести её.
Затык связан именно с нитями, т.к. если исполнять функцию без них - всё мгновенно.
import threading
class TripThread(threading.Thread):
def __init__(self, func):
self.func = func
threading.Thread.__init__(self)
def run(self):
self.total = self.func()
def application(environ, start_response):
funcs = []
RouteSuppliers = ['Supplier1',]
for RouteSupplier in RouteSuppliers:
funcs.append( getattr( __import__(RouteSupplier) , RouteSupplier ) )
t = []
for func in funcs:
t.append(TripThread(func))
for i in t:
i.start()
trbusyflag = True
while trbusyflag:
trbusyflag = False
for i in t:
if i.isAlive() == True:
trbusyflag = True
output = ""
for i in t:
output += i.total
status = '200 OK'
response_headers = [('Content-type', 'application/javascript'),('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]