Cotyledon provides a framework for defining long-running services.
It provides handling of Unix signals, spawning of workers, supervision of children processes, daemon reloading, sd-notify, rate limiting for worker spawning, and more.
This library is mainly used in Openstack Telemetry projects for now. In the past oslo.service was used. But our projects don’t want to use eventlet anymore.
oslo.service is written on top of eventlet to provide two main features:
The first one was replaced by another Oslo lib called futurist and the second part by Cotyledon.
Our main issue was greenlet that doesn’t run in timely fashion because we don’t monkeypatch the python stdlib anymore. Making Tooz/Oslo.messaging hearbeats to fail. And processes that doesn’t exists as expected due to greenpipe never processed.
Unlike oslo.service, cotyledon have:
And doesn’t:
So these toohard to fix issues and the heavy eventlet dependencies make this library to appear.