HTTP endpoint that counts ready celery workers
Project description
celery_worker_healthcheck
HTTP endpoint that counts ready celery workers
The main usecase is configuring this as a Kubernetes readinessProbe.
If a faulty software update is deployed that prevents the worker from starting,
the readinessProbe detects this, and keeps the previously running Pods,
instead of replacing them with the non-functional new Pods.
Usage
Add this registration statement to your codebase, so that it is picked up by the celery worker, e.g. in the module where the celery application is defined.
import celery_worker_healthcheck
celery.signals.worker_init.connect(weak=False)(celery_worker_healthcheck.start)
Then configure the bind address for the healthcheck in your celery configuration:
worker_healthcheck_bind = '127.0.0.1:8001'
This starts an HTTP server in a thread;
on request it counts the number of workers that have notified they are ready
(using the worker_process_init signal to write a pid file).
If the required number of workers are ready, it returns HTTP 200, else 500.
Configuration
These settings can be configured as part of the normal celery configuration:
worker_healthcheck_bindhost:port on which to listen for healthcheck requests (default: None, i.e. healthcheck is disabled)worker_healthcheck_minimumcount of workers that must be ready for the healthcheck to report success (default: 1)worker_healthcheck_directorydirectory in which to store the state files, one per worker (default:'', i.e. the current directory)worker_healthcheck_filenameformat string how to name the state files, must contain one placeholder{}for the pid (default:'.celery.worker.{}')
celery_worker_healthcheck Changes
1.0.0 (2025-03-10)
- Initial release (initial)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file celery_worker_healthcheck-1.0.0.tar.gz.
File metadata
- Download URL: celery_worker_healthcheck-1.0.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a0ea1a81a58fd5169605ae13c8155c94ac628ad784da4e7f73f870d140d7020
|
|
| MD5 |
19db5b7d1937d2b6bdb8abd45d23bb9e
|
|
| BLAKE2b-256 |
00394ff89ea9328ff864557740db26359f8e55a687c24bd2219778c4c2f1e988
|
File details
Details for the file celery_worker_healthcheck-1.0.0-py3-none-any.whl.
File metadata
- Download URL: celery_worker_healthcheck-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.27.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3a9d3c6f468ceb29292e852c409c0cc486b64018f53e3518dec421126e591ce
|
|
| MD5 |
6e727fcbb95b1ed2d79e891438df4372
|
|
| BLAKE2b-256 |
e1b86140981f367a3cd10cd61eb59f23a1994b685eef430c2b692b9673ad9ec6
|