Skip to main content

z4j Celery-beat scheduler adapter (Apache 2.0)

Project description

z4j-celerybeat

PyPI version Python License

License: Apache 2.0 Status: v1.0.0 - first public release.

The Celery-Beat scheduler adapter for z4j. Surfaces periodic / crontab / one-shot schedules on the dashboard's Schedules page - read, create, update, enable, disable, trigger-now, delete.

Supports both of Celery's scheduling backends:

  • app.conf.beat_schedule (static config in Python)
  • django_celery_beat.models.PeriodicTask (database-backed, dynamic)

Install

pip install z4j-celery z4j-celerybeat

What it ships on day 1

Capability Status
List schedules
Read individual schedule by id
Create new schedule
Update (interval, crontab, args, kwargs, enabled flag)
Enable / disable
Trigger-now (fire the task immediately outside the schedule)
Delete
Live sync for django-celery-beat ✅ (via post_save signal on PeriodicTask)

Configure

With django-celery-beat (Django projects)

# settings.py
INSTALLED_APPS = [
    # ...
    "django_celery_beat",
    "z4j_django",
]
# The z4j-celerybeat adapter is auto-registered when django_celery_beat
# is on INSTALLED_APPS.

The Schedules page picks up every PeriodicTask row immediately. Edits flow both ways - dashboard changes are written through to the database, and changes written directly to the model surface via signals.

With static beat_schedule (non-Django or plain Celery)

# celery_app.py
from celery import Celery
from z4j_bare import install_agent
from z4j_celery import CeleryEngineAdapter
from z4j_celerybeat import CeleryBeatAdapter

app = Celery("myproject", broker="redis://localhost")
app.conf.beat_schedule = {
    "cleanup-every-5-minutes": {
        "task": "myapp.tasks.cleanup",
        "schedule": 300.0,
    },
}

install_agent(
    engines=[CeleryEngineAdapter(celery_app=app)],
    schedulers=[CeleryBeatAdapter(celery_app=app)],
    brain_url="https://z4j.internal",
    token="z4j_agent_...",
    project_id="my-project",
)

Static beat_schedule is read-only by design - you can view, enable, disable, and trigger-now, but create / update / delete are rejected because those changes would need to round-trip through a deploy. The dashboard hides buttons it can't honor.

Reliability

  • No exception from the adapter propagates to Celery Beat or Django request handlers.
  • post_save signal handlers for PeriodicTask are wrapped in a top- level try/except - even if the brain is unreachable, the database write is never affected.

Documentation

License

Apache 2.0 - see LICENSE.

Links

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

z4j_celerybeat-1.0.1.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

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

z4j_celerybeat-1.0.1-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file z4j_celerybeat-1.0.1.tar.gz.

File metadata

  • Download URL: z4j_celerybeat-1.0.1.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for z4j_celerybeat-1.0.1.tar.gz
Algorithm Hash digest
SHA256 3b7b7cbd12be2780bc1baac2c2b31b9e447b976b6dcf08ebb8b6091d011cee4e
MD5 9b0b42e0cd785e25188388643cd1d353
BLAKE2b-256 03e94a66f2e93c05d6ece636e1b7d977342c7108df17971c387e9a596e10e2cd

See more details on using hashes here.

File details

Details for the file z4j_celerybeat-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: z4j_celerybeat-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for z4j_celerybeat-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b54209fd83d9249f3966ca5aa187f46e6ec488dad3f262a021eb36d25e9533f2
MD5 fefc209d50afe3b785ab035cac3e00f8
BLAKE2b-256 1f768e34d466f6ae824df738e0b130ba4268ab0d8126cc48137be470a1e5ecf2

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