Sto usando Python requests
nel sedano workers
per effettuare un numero elevato di chiamate API (~ 10/sec) (include GET, POST, PUT, DELETE). Ogni richiesta richiede circa 5-10 secondi per essere completata.Celery + Eventlet + richieste non bloccanti
Ho provato a gestire i lavoratori del sedano nel pool eventlet
, con 1000 simultaneità.
Poiché requests
sono processi di blocco, ogni connessione simultanea è in attesa su una richiesta.
Come si effettua requests
in modo asincrono?
Perfetto! " ' request = eventlet.import_patched ('richieste') ' che stava dando impossibile importare utils (' from. Import utils') Quindi l'ho cambiato in 'requests = eventlet.import_patched ('richieste .__ init __') 'come da https://github.com/eventlet/eventlet/issues/7 grazie ancora – Maddy
@Maddy, a parte l'applicazione delle patch alla libreria di richieste, c'era qualcos'altro richiesto per fare richieste asincrone e c'era anche qualche cambiamento nel modo in cui la risposta veniva raccolta dopo la richiesta? Post patching possiamo ancora fare resp = requests.get ("http://google.com")? – amrx
@amrx Al momento ha funzionato, ma sono sicuro che ora devono aggiornare le patch. – Maddy