Download the PHP package jiordiviera/laravel-smart-scheduler without Composer
On this page you can find all versions of the php package jiordiviera/laravel-smart-scheduler. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jiordiviera/laravel-smart-scheduler
More information about jiordiviera/laravel-smart-scheduler
Files in jiordiviera/laravel-smart-scheduler
Package laravel-smart-scheduler
Short Description A Laravel package for smart task scheduling
License MIT
Informations about the package laravel-smart-scheduler
Laravel Smart Scheduler
A Laravel package for intelligent scheduled task management with observability, reliability features, and automatic stuck task detection.
Features
- Task Execution Tracking: Record every scheduled task execution with status, duration, and output
- Overlap Prevention: Automatically prevent concurrent executions of the same task
- Stuck Task Detection: Automatically detect and handle tasks that are stuck (server crash, process killed)
- Failure Notifications: Email notifications for failed and stuck tasks (extensible to other channels)
- Task History: Maintain execution history with server information
- Purge Command: Clean up old execution records
Requirements
- PHP 8.2+
- Laravel 11.x or 12.x
Installation
Install via Composer:
Publish the configuration and migrations:
Run migrations:
Configuration
The package automatically registers a service provider. Configure settings in config/smart-scheduler.php:
Or use environment variables:
Usage
The package automatically tracks all scheduled tasks defined in routes/console.php:
Viewing Execution History
Query the smart_schedule_runs table:
Purging Old Records
Remove old successful and ignored records:
Detecting Stuck Tasks
Manually detect and mark stuck tasks:
Note: Stuck tasks are also automatically detected when a new execution of the same task starts.
Recommended Scheduler Setup
Add these commands to your routes/console.php for automatic maintenance:
How It Works
The package uses Laravel's event system to intercept scheduled task lifecycle:
Task Statuses
| Status | Description |
|---|---|
starting |
Task is currently running |
success |
Task completed successfully (exit code 0) |
failed |
Task failed (exit code ≠ 0) |
ignored |
Task skipped due to overlap |
stuck |
Task was running too long and marked as stuck |
Extending Notifications
Implement SmartNotifierInterface to add custom notification channels:
Register in a service provider:
Testing
Code Style
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
The MIT License (MIT). Please see License File for more information.
Credits
- Jiordi Viera
- All Contributors
All versions of laravel-smart-scheduler with dependencies
illuminate/support Version ^11.0 || ^12.0
illuminate/console Version ^11.0 || ^12.0
illuminate/database Version ^11.0 || ^12.0
illuminate/events Version ^11.0 || ^12.0
illuminate/mail Version ^11.0 || ^12.0