Skip to main content

z4j Celery-beat scheduler adapter (Apache 2.0)

Project description

z4j-celerybeat

PyPI version Python License

The Celery Beat scheduler adapter for z4j.

Surfaces periodic / crontab / one-shot Celery schedules on the dashboard's Schedules page, read, create, update, enable, disable, trigger, delete. Supports both Celery's static app.conf.beat_schedule and the database-backed django_celery_beat.models.PeriodicTask.

Compatibility

  • Celery 5.3+ (no upper cap)
  • django-celery-beat 2.5+ (for the writable backend)
  • Python 3.11+

Full per-adapter matrix at https://z4j.dev/reference/compatibility/.

What it ships

Capability Notes
List schedules from both static config and django-celery-beat
Read individual schedule by id
Create schedule django-celery-beat backend (static is read-only)
Update interval / crontab / args / kwargs / enabled flag
Enable / disable via is_enabled toggle
Trigger now fires the underlying task immediately, outside the schedule
Delete django-celery-beat backend
Live sync django-celery-beat changes flow to the dashboard automatically
Boot inventory full snapshot at agent connect; existing schedules show up without editing

Static beat_schedule is read-only by design, you can view and trigger, but create / update / delete / enable / disable all need django-celery-beat (or a source-code edit and deploy round-trip). The dashboard hides buttons it can't honor.

Install

pip install z4j-celery z4j-celerybeat

With django-celery-beat (most Django projects)

# settings.py
INSTALLED_APPS = [
    # ...
    "django_celery_beat",
    "z4j_django",
]

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

With static beat_schedule (plain Celery)

from celery import Celery
from z4j_bare import install_agent
from z4j_celery import CeleryEngineAdapter
from z4j_celerybeat import CeleryBeatSchedulerAdapter

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=[CeleryBeatSchedulerAdapter(celery_app=app)],
    brain_url="https://brain.example.com",
    token="z4j_agent_...",
    project_id="my-project",
)

Pairs with

Reliability

  • No exception from the adapter ever propagates back to Celery Beat, Django request handlers, or PeriodicTask signal receivers.
  • Database writes for PeriodicTask happen in the dashboard's request context with normal Django ORM semantics, even if z4j is unreachable, the local model write is never affected.

Documentation

Full docs at z4j.dev/schedulers/celery-beat/.

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.7.0.tar.gz (23.1 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.7.0-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for z4j_celerybeat-1.7.0.tar.gz
Algorithm Hash digest
SHA256 b0e0b6209493b1626a295fb2ecfb67f2e1ee1b63687e27180524946050070658
MD5 1b24d3e28888537be1d1a89a3360d269
BLAKE2b-256 3114a4463a8a7d42bd7daf16d9e03904b8773c410f04911cbd47868b04f72652

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for z4j_celerybeat-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b047811d22a0c0dede99c0be739eab277b84f316c569b0063ce4085ba2d4334
MD5 a5fbb0dda9729aaefee41ae8f702023b
BLAKE2b-256 7c61e8440bf988409c1862b835bb39a34a4644b4cf0175314403b8eb9c575735

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