So folgte ich einem Leitfaden um http://tavendo.com/blog/post/going-asynchronous-from-flask-to-twisted-klein/, um einen asynchronen Web-Service zu erstellen.So senden Sie zwei Anfragen zur gleichen Zeit mit Python
in meinem Code, ich hatte eine Funktion, die die Anforderung wie
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")
aussenden wird Da jede Anfrage an den api in der Regel etwa 3 Sekunden mit meinem aktuellen Code nehmen das Ergebnis nach 6 Sekunden zurückkommt. Ich frage mich, gibt es eine Möglichkeit, zwei Abfragen gleichzeitig zu senden, so dass ich nach 3 Sekunden den Inhalt von sowohl output1 und output2 bekommen kann? Vielen Dank.
Sie könnten Threads verwenden oder einen Weg finden, die Abfragen in eine Abfrage zusammenzuführen – depperm
Ihr "Problem" ist, dass Sie '' inlineCallbacks' verwenden, die (aus Mangel an besseren Wörtern) verhält sich wie synchroner Code. Also muss '' output1'' eigentlich einen Wert ergeben, bevor es zu '' output2'' weitergehen kann. –