Skip to main content

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_bind host:port on which to listen for healthcheck requests (default: None, i.e. healthcheck is disabled)
  • worker_healthcheck_minimum count of workers that must be ready for the healthcheck to report success (default: 1)
  • worker_healthcheck_directory directory in which to store the state files, one per worker (default: '', i.e. the current directory)
  • worker_healthcheck_filename format 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


Download files

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

Source Distribution

celery_worker_healthcheck-1.0.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

celery_worker_healthcheck-1.0.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file celery_worker_healthcheck-1.0.0.tar.gz.

File metadata

File hashes

Hashes for celery_worker_healthcheck-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3a0ea1a81a58fd5169605ae13c8155c94ac628ad784da4e7f73f870d140d7020
MD5 19db5b7d1937d2b6bdb8abd45d23bb9e
BLAKE2b-256 00394ff89ea9328ff864557740db26359f8e55a687c24bd2219778c4c2f1e988

See more details on using hashes here.

File details

Details for the file celery_worker_healthcheck-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for celery_worker_healthcheck-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3a9d3c6f468ceb29292e852c409c0cc486b64018f53e3518dec421126e591ce
MD5 6e727fcbb95b1ed2d79e891438df4372
BLAKE2b-256 e1b86140981f367a3cd10cd61eb59f23a1994b685eef430c2b692b9673ad9ec6

See more details on using hashes here.

Supported by

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