Je crée des tâches en héritant de Greenlet
. J'ai une tâche parent unique qui appelle start()
sur deux enfants dans son _run()
. Ailleurs (il se trouve être un service systemd) start()
et join()
sont appelés.Gestion correcte de l'enfant Greenlets
Le comportement semble correct. Par exemple l'utilisation d'un Queue
avec des délais d'attente atteint l'effet désiré mais je n'ai pas trouvé un bon moyen d'éteindre les enfants par exemple KeyboardInterrupt
ou en enregistrant un rappel à la tâche parente pour SIGTERM
. Dans le gestionnaire j'appellerais child1.kill()
et 'child2.kill() but only the first called seemed to raise
GreenletExit`.
Je n'appelle jamais join()
sur les enfants et je ne sais pas comment je ferais cela correctement. Est-ce que j'utilise mal la bibliothèque?