Jobs & Scheduling

Long-running operations run as Laravel queue jobs. The scheduler in routes/console.php triggers backup, healthcheck, update, integrity, metrics, and domain-whois commands on a cron.

Queue jobs

JobPathPurpose
ProvisionSiteJobapp/Jobs/ProvisionSiteJob.phpProvisions new site via Provisioner
CloneSiteJobapp/Jobs/CloneSiteJob.phpClones site via CloneEngine
BackupSiteJobapp/Jobs/BackupSiteJob.phpCreates DB or uploads backup
RestoreSiteJobapp/Jobs/RestoreSiteJob.phpRestores from Backup
RunHealthcheckJobapp/Jobs/RunHealthcheckJob.phpRuns HealthcheckService for site(s)
RunUpdateJobapp/Jobs/RunUpdateJob.phpRuns UpdateService for site(s)
IntegrityCheckJobapp/Jobs/IntegrityCheckJob.phpRuns IntegrityCheckService for a site
SyncCloudflareDnsJobapp/Jobs/SyncCloudflareDnsJob.phpSyncs Cloudflare A records
CheckDomainWhoisJobapp/Jobs/CheckDomainWhoisJob.phpDomain WHOIS checks (if used)

Schedule (routes/console.php)

CommandSchedule
wphoster:run-backups dbDaily at 02:00
wphoster:run-backups uploadsDaily at 03:00
wphoster:purge-expired-backupsDaily at 04:00
wphoster:run-healthchecksEvery 10 minutes
wphoster:run-updates --staging-firstDaily at 01:00
wphoster:run-integrity-checksDaily at 06:00
wphoster:collect-metricsHourly
wphoster:check-domains-whoisDaily at 05:00

Artisan commands

Commands live under app/Console/Commands/. Key ones:

Ensure the scheduler runs (e.g. php artisan schedule:work in dev or cron * * * * * php /path/artisan schedule:run in production) and a queue worker is running (php artisan queue:work).