所以我按照指南http://tavendo.com/blog/post/going-asynchronous-from-flask-to-twisted-klein/創建一個異步web服務。如何用python同時發送兩個請求
在我的代碼,我不得不將發出請求像
def query(text):
resp = yield treq.get("http://api.Iwanttoquery")
content = yield treq.content(resp)
returnValue(content)
@inlineCallbacks
def caller():
output1 = yield query("one")
output2 = yield query("two")
由於每個查詢到的API通常需要大約3秒,我當前的代碼,結果在6秒後回來的功能。我不知道是否有辦法同時發出兩個查詢,所以3秒後我可以得到output1和output2的內容?謝謝。
您可以使用線程或找到一種方法將查詢合併到一個查詢中 – depperm
您的「問題」是您正在使用「inlineCallbacks」(缺少更好的單詞)像同步代碼一樣行事。所以基本上''output1''必須先產生一個值,然後才能移動到''output2''。 –