Ich möchte Jobs von einem Thread an eine asyncio
Ereignisschleife übergeben (genau wie run_in_executor aber umgekehrt).Senden Sie einen Job an eine asyncio Ereignisschleife
Hier ist, was die asyncio
Dokumentation sagt über concurrency and multithreading:
von einem anderen Thread einen Rückruf zu planen, die BaseEventLoop.call_soon_threadsafe() Methode verwendet werden soll. Beispiel ein Koroutine von einem anderen Thread zu planen:
loop.call_soon_threadsafe(asyncio.async, coro_func())
Das funktioniert gut, aber das Ergebnis der Koroutine verloren.
Stattdessen ist es möglich, eine Funktion zu verwenden, das einen getan Rückruf in die Zukunft von async
(oder ensure_future
), so dass der Faden das Ergebnis zugreifen kann durch ein concurrent.futures.Future zurückzuhinzufügt.
Gibt es einen bestimmten Grund, warum eine solche Funktion nicht in der Standardbibliothek implementiert ist? Oder habe ich einen einfacheren Weg vermisst, um das zu erreichen?
tun Sie dies in der Frage stellen wollen, so spielt es keine scheint eine Antwort zu sein –
Nun, es ist eine Art von [eine Teilantwort auf meine eigene Frage] (http://StackOverflow.com/Help/self-answer), da es eine bessere Möglichkeit geben könnte, das gleiche zu erreichen. – Vincent
wenn du es so siehst, ok :) –