Mi piacerebbe emettere una richiesta POST HTTP asincrona usando gevent
- Non mi interessa la risposta, voglio semplicemente eseguire la richiesta il prima possibile. Tuttavia, ogni volta che cerco di farlo utilizzando gevent.spawn
, la richiesta non viene mai eseguita. Lo so perché chiamare i metodi .ready()
o .successful()
su Greenlet
restituito da gevent.spawn
restituisce sempre False
.Perché gevent.spawn non esegue la funzione parametrizzata fino alla chiamata a Greenlet.join?
Tuttavia, il Greenlet ha iniziato, perché se io chiamo glet = gevent.spawn(...)
, poi glet.start()
, ottengo un errore che dice AssertionError: Greenlet already started
.
L'unica volta che ottengo un glet.ready() == True
è quando chiamo glet.join()
, ma questa è un'operazione di blocco. Come posso eseguire Greenlet senza attendere che si completi?
Ah sembra funzionare! Tuttavia, quando sto usando la libreria grequests (https://github.com/kennethreitz/grequests), chiamando grequests.send (grequests.request ("POST",)) crea un Greenlet, ma questo Greenlet no eseguire anche dopo aver chiamato gevent.sleep(). Sai perché? –
neptune
@neptune: vedere l'aggiornamento – FatalError