저는 웹 개발자에게 매우 익숙합니다. 데이터를 새로 고치기 위해 Ajax 호출로 간단한 웹 인터페이스를 구축하고, 백엔드로 turbogears2를 구축하려고합니다.turbogears2와의 동시 요청
내 Ajax 호출이 잘 작동하고 Turbogears2 서버에 주기적으로 호출하지만 이러한 호출에는 완료 시간이 필요합니다 (일부 요청은 서버가 다른 시스템에서 원격 SSH 호출을 사용하도록 만듭니다. 완전한).
내 문제는 TurboGears가 다음 요청을 처리하기 전에 각 요청이 완료 될 때까지 대기하므로 모든 동시 Ajax 호출이 모두 병렬 처리되는 대신 대기열에 대기한다는 것입니다. N 값을 새로 고치려면 3 * N 초가 걸릴 수 있습니다. 여기서 동시성은 3 초가 걸릴 수 있습니다.
어떻게 해결할 수 있습니까?
class RootController(TGController):
@expose()
def index(self):
with open ("index.html") as data:
index = data.read()
return index
@expose()
def get_load(self, ip):
command = "bash get_cpu_load.sh"
request = subprocess.Popen(["ssh", "-o ConnectTimeout=2", ip, command])
load = str(request.communicate()[0])
return load