Scheduler
Config section:
scheduler.*
The scheduler creates backups automatically using cron expressions.
Enable scheduler
-
scheduler.enabled
- Default: false
-
scheduler.checkIntervalSeconds
- Default: 1
- Minimum enforced: 1
- How often the scheduler checks for due jobs
-
scheduler.timezone
- Default: empty (system timezone)
- Examples: Europe/Warsaw, UTC
- Invalid values fall back to system timezone
Jobs list
scheduler.jobs is a list of job objects.
Required fields
- id
- cron
- target
Optional fields
- full (default: false)
- note (default: empty)
- skipIfNoChanges (default: true)
Job fields
id
- Must be unique
- Reserved value not allowed: shutdown
cron
5-field cron format:
minute hour dayOfMonth month dayOfWeek
Examples: - /6 * * * every 6 hours - 3 * * * daily at 03:00 - /15 * * * * every 15 minutes - 4 * * 1 every Monday at 04:00
target
Same syntax as /cg backup: - plugins - plugin:Essentials,LuckPerms - path:plugins/SomePlugin/config.yml - older:Mina
full
- rue = FULL mode
- alse = configs-only
note
- Stored in meta.json for the backup
skipIfNoChanges
- Computes a fingerprint of planned files
- If fingerprint matches previous run, the job is skipped
Execution model
- Scheduler checks due jobs periodically
- Due jobs are enqueued into a FIFO queue
- A single async worker executes jobs sequentially
- No parallel scheduled backups
- No catch-up loops after downtime
Locking
Scheduler uses the same global lock as manual backup and restore.
If the lock is busy, the job is skipped for that tick.