Vorrei inoltrare i lavori da un thread a un ciclo di eventi asyncio
(come nel caso di run_in_executor ma viceversa).Invia un lavoro a un ciclo di eventi asyncio
Ecco cosa la documentazione asyncio
dice di concurrency and multithreading:
Per pianificare una richiamata da un thread diverso, il metodo BaseEventLoop.call_soon_threadsafe() è consentito. Esempio per programmare una coroutine da un thread diverso:
loop.call_soon_threadsafe(asyncio.async, coro_func())
Che funziona bene ma il risultato della coroutine è perduto.
Invece, è possibile utilizzare una funzione che aggiunge un callback fatto per il futuro restituito da async
(o ensure_future
) in modo che il filo può accedere il risultato attraverso un concurrent.futures.Future.
C'è una ragione particolare per cui tale funzione non è implementata nella libreria standard? O mi sono perso un modo più semplice per raggiungere questo obiettivo?
vuoi mettere questo nella questione in modo che pretende molto sembra una risposta –
Beh, è una specie di [una risposta parziale alla mia domanda] (http://stackoverflow.com/help/self-answer), dal momento che potrebbe esserci un modo migliore per ottenere la stessa cosa. – Vincent
se lo vedi in questo modo, ok :) –