About symfony-scheduler
Symfony Scheduler skill for developers setting up recurring jobs in Symfony. It covers trigger selection, schedule organization, worker operation, and controls for duplicate or overlapping runs.
Key features
- 01Recurring and cron triggers
- 02Named schedule providers
- 03Stateful schedules and locks
- 04Worker operation and monitoring
Use cases
- 01Scheduling reports, cleanup, and sync jobs
- 02Preventing overlap in heavy tasks
- 03Testing scheduled messages and run dates
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill symfony-schedulerAfter installing, type/symfony-schedulerin Claude Code to confirm it loaded.
Bundled filesreference.md
Details
From the project READMESymfony Scheduler (Symfony)
Use when
- Running recurring work (reports, cleanups, syncs) without system cron entries.
- Choosing between
RecurringMessage::every(),RecurringMessage::cron(), and a customTriggerInterface. - Splitting jobs into several named schedules with
#[AsSchedule]. - Preventing overlap or lost runs of heavy scheduled tasks.
Default workflow
- Install
symfony/scheduler, then write the message and its#[AsMessageHandler]handler. - Create a
#[AsSchedule('default')]class implementingScheduleProviderInterfaceand addRecurringMessageentries. - Pick the trigger:
every('5 minutes')orcron('0 */6 * * *'), with an explicit timezone for cron. - Add
stateful($cache)andlock($lockFactory->createLock('scheduler'))on theSchedulefor heavy tasks. - Run it with
messenger:consume scheduler_defaultunder Supervisor, one process per schedule. - Log with
PreRunEventandPostRunEvent, and test the provider throughgetRecurringMessages()andgetNextRunDate().
Guardrails
- Run a single consumer per schedule (
numprocs=1) and add a lock, or the same task fires twice. - Be explicit about timezones on every cron trigger.
- Scheduled handlers must be idempotent, since a run can be repeated.
- Use
--time-limitwith Supervisorautorestartso the long-lived worker recycles itself.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- The schedule provider(s) with their triggers and timezone.
- The worker command and the Supervisor entry.
- The overlap policy (stateful, lock) and the monitoring hooks.
References
reference.md
Comments
Markdown supported