Skip to content

Beat ignores all other periodic tasks between consecutive runs of a CrontabSchedule when its timezone column is NULL #882

Open
@mvinoba

Description

@mvinoba

Environment

component version
django‑celery‑beat 2.7.0
Celery 5.5.1
Django 5.0.2
Python 3.11
Broker Redis
CELERY_TIMEZONE = "America/Sao_Paulo"
CELERY_ENABLE_UTC = False
CELERY_BEAT_SCHEDULER = "django_celery_beat.schedulers:DatabaseScheduler"
DJANGO_CELERY_BEAT_TZ_AWARE = True

What happened in production

One CrontabSchedule row was configured (incorrectly) with minute="30", hour="6,9", timezone=NULL.

After the job ran at 06 h 30 (local), Celery Beat dispatched no other periodic task until it "fired again" at 09 h 30.

Disabling the task immediately restored normal scheduling and all other jobs resumed as expected. All other jobs have timezone="America/Sao_Paulo" .

Expected

Beat should execute the 06 h 30 / 09 h 30 job and continue processing the rest of the periodic‑task queue in between.

Actual

All other periodic tasks were skipped during that three‑hour window.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions