Sto costruendo un'applicazione utilizzando gevent. La mia app sta diventando piuttosto grande ora che ci sono un sacco di posti di lavoro generati e distrutti. Ora ho notato che quando uno di questi processi si interrompe, la mia intera applicazione continua a funzionare (se l'eccezione proviene da una greenlet non principale), il che va bene. Ma il problema è che devo guardare la mia console per vedere l'errore. Quindi alcune parti della mia applicazione possono "morire" e io non ne sono consapevole all'istante e l'app continua a funzionare.Monitoraggio delle eccezioni gevent nei lavori
Il jittering della mia app con try catch non sembra essere una soluzione pulita. Forse una funzione di spawn personalizzata che segnala alcuni errori?
Qual è il modo corretto per monitorare i lavori gevent/greenlet? prendere le eccezioni?
Nel mio caso ascolto eventi di poche fonti diverse e dovrei occuparmi di ogni diverso. Ci sono 5 lavori come estremamente importanti. Greenlet webserver, greenlet websocket, verdetto del database , greenlet degli allarmi e greenlet zmq. Se qualcuno di quelli "muore" la mia applicazione dovrebbe morire completamente. Altri lavori che muoiono non sono così importanti. Ad esempio, è possibile che websocket greenlet muoia a causa di qualche eccezione sollevata e il resto delle applicazioni continua a funzionare correttamente come se nulla fosse successo. E 'completamente inutile e pericoloso ora e dovrebbe andare in crash.
Ho reso i greenlet di Mission critical molto piccoli (8 linee di codice) e al loro turno generano greenlet per cui è "ok" andare in crash. – Stephan