Cron & Queue
Scheduler (required)
* * * * * cd /path/to/pulsevia && php artisan schedule:run >> /dev/null 2>&1
Scheduled tasks include:
| Task | Cadence | Purpose |
|---|---|---|
| License revalidation | daily | Refresh entitlement |
| Scheduled reports | every 5 minutes | Email due PDF/CSV/XLSX |
| Privacy retention | daily 02:15 | Anonymize/delete old responses |
| Demo reset | every N hours | Only when DEMO_MODE=true |
| Queue drain | every minute | Short queue:work if no daemon |
| Prune failed jobs | weekly | Cleanup |
Queue
Default .env:
QUEUE_CONNECTION=database
Built-in (shared hosting)
The scheduler runs a short queue:work --stop-when-empty each minute. Fine for light mail/webhooks.
Recommended (VPS)
Run a dedicated worker:
php artisan queue:work --sleep=1 --tries=3
Or Supervisor program pointing at that command. Restart workers after deploys/updates.