Skip to main content

Cotyledon provides a framework for defining long-running services.

Project description

Latest Version Downloads https://travis-ci.org/sileht/cotyledon.png?branch=master https://tea-ci.org/api/badges/sileht/cotyledon/status.svg

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 two 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.

  • Support non posix platform, because it’s built on top of multiprocessing module instead of os.fork

  • Provide functional testing

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cotyledon-1.6.7.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

cotyledon-1.6.7-py2.py3-none-any.whl (23.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file cotyledon-1.6.7.tar.gz.

File metadata

  • Download URL: cotyledon-1.6.7.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cotyledon-1.6.7.tar.gz
Algorithm Hash digest
SHA256 0974b8a591eb9b9b4a56dd9225c0c3eb8bf750df020d3c25e94a70d5c04e6a1a
MD5 7e2aff52379f5b6f8cf14991a85ad863
BLAKE2b-256 e7c0461c744877ba8cdd5c8743e905d9bc3da6d0bb9852b912e0f52591304586

See more details on using hashes here.

File details

Details for the file cotyledon-1.6.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for cotyledon-1.6.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8094d091d8ac8449c53244c58900680c377a58cef151dc34e6ec62d5c20a904b
MD5 58bd5a85510267d999f26edaf9462fb5
BLAKE2b-256 08979f03bad2ec79f59b658becd764eca6c41f7c8f8faaa8b2d58581f221b32d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page