RETIRED, further work has moved to Debian project infrastructure
Go to file
Mehdi Abaakouk 4d06b7df0e Don't use signal.alarm on python2 2016-09-27 22:17:57 +02:00
cotyledon Don't use signal.alarm on python2 2016-09-27 22:17:57 +02:00
doc/source doc: Add examples 2016-07-21 17:45:25 +02:00
.coveragerc Fix owner 2016-07-14 18:51:36 +02:00
.gitignore Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
.mailmap Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
.testr.conf Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
.travis.yml Revert "Add py35 tests" 2016-07-14 22:36:52 +02:00
CONTRIBUTING.rst doc: Add examples 2016-07-21 17:45:25 +02:00
HACKING.rst Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
LICENSE Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
MANIFEST.in Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
README.rst Add new oslo.service/cotyledon diff 2016-09-21 10:33:54 +02:00
babel.cfg Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
release.sh Move release testing to py35 2016-09-12 15:49:14 +02:00
requirements.txt re-re-handles signal during service init 2016-07-06 13:25:57 +02:00
setup.cfg Rename oslo-config entry point 2016-09-21 11:22:04 +02:00
setup.py Initial Ccotyledon Commit. 2016-04-21 17:49:42 +02:00
test-requirements.txt Add oslo config glue 2016-09-21 10:11:42 +02:00
tox.ini Fix owner 2016-07-14 18:51:36 +02:00

README.rst

Cotyledon

image

Latest Version

Downloads

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.

Why Cotyledon

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 to main features:

  • periodic tasks
  • workers processes management

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:

  • The same code path when workers=1 and workers>=2
  • reload API (on SIGHUP) hooks work in case of you don't want to restarting children
  • a separated API for children process termination and for master process termination
  • seatbelt to ensure only one service workers manager run at a time.
  • Is signal concurrency safe.

And doesn't:

  • facilitate the creation of wsgi application (sockets sharing between parent and children process). Because too many wsgi webserver already exists.

So these toohard to fix issues and the heavy eventlet dependencies make this library to appear.