同時請求我很新的Web開發,我試圖建立一個簡單的Web界面與Ajax調用刷新數據,並turbogears2作爲後端。與turbogears2
我Ajax調用做工精細,使我Turbogears2服務器定期調用,但是這些調用需要時間來完成(一些請求使服務器使用其它機器上,這需要長達3-4秒的SSH遠程調用完成)。
我的問題是TurboGears的等待每個請求處理下一個之前完成,所以我所有的併發Ajax調用正在排隊,而不是被並行處理所有。 要刷新N個值需要3 * N秒,並且只需3秒即可完成並行操作。
任何想法如何解決這個問題?
這裏是我當前的服務器端代碼(方法get_load是調用Ajax中的一個):
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