semitexa / scheduler
Semitexa Scheduler — recurring and delayed background jobs with storage-backed planning, lease-based workers, and overlap protection
Package info
github.com/semitexa/semitexa-scheduler
Type:semitexa-module
pkg:composer/semitexa/scheduler
Requires
- php: ^8.4
- dragonmantank/cron-expression: ^3.3
- semitexa/core: *
- semitexa/orm: *
- semitexa/tenancy: *
This package is auto-updated.
Last update: 2026-04-05 09:00:34 UTC
README
Recurring and delayed background jobs with lease-based workers, retry logic, and overlap protection.
Purpose
Manages scheduled job execution. Jobs are persisted via ORM, leased by workers with heartbeat monitoring, and retried with exponential backoff on failure. Cron expressions define recurring schedules.
Role in Semitexa
Depends on semitexa/core, semitexa/orm, and semitexa/tenancy. Uses dragonmantank/cron-expression for schedule parsing. Jobs execute within tenant context when tenancy is active.
Key Features
- Cron-based recurring job scheduling
- Lease-based worker execution with heartbeat
- Exponential backoff retry via
RetryScheduler - Overlap protection (one execution per schedule)
RunStatusstate machine (pending, running, completed, failed)- Tenant-isolated job execution
Notes
The scheduler is designed for Swoole long-running processes. Workers maintain leases via heartbeat and release them on graceful shutdown.