A Laravel artisan command scheduling tool that eliminates the need to edit crontab during deployments.
Dispatcher is a Laravel package that schedules artisan commands programmatically within a Laravel application. It solves the problem of manually managing cron jobs by allowing developers to define schedules in PHP code, which are then executed via a single cron entry. This keeps scheduling logic version-controlled and environment-aware.
Laravel developers and teams who need to automate recurring tasks (like backups, emails, or cleanup) and want to manage schedules within their codebase without touching server crontabs.
Developers choose Dispatcher because it integrates scheduling directly into Laravel's artisan ecosystem, offers fine-grained control over when and where commands run, and simplifies deployment by removing manual cron configuration. Its driver system also allows for custom scheduling contexts tailored to specific application needs.
Dispatcher is a Laravel artisan command scheduling tool used to schedule artisan commands within your project so you don't need to touch your crontab when deploying.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows defining artisan command schedules directly in PHP code using a fluent interface, keeping scheduling logic version-controlled and deployable without manual crontab edits, as shown in the README's code examples.
Commands can be configured to run only in specific environments like development or staging via the environment() method, preventing accidental execution in production and simplifying multi-environment setups.
When run from the root crontab, commands can execute as different system users by overriding user(), enhancing security and permission management for tasks like backups or system operations.
Supports custom drivers for adding application-specific scheduling contexts, such as academic calendars or business rules, allowing teams to tailor scheduling logic beyond basic time-based rules.
Officially not maintained for Laravel 5 and above, as stated in the README, making it obsolete for projects on current Laravel versions and forcing users to migrate to Laravel's built-in scheduler.
Requires adding an entry to the root crontab for full functionality, which can be a security concern and complicates setup in environments with restricted access or containerized deployments.
Upgrading from version 1.4 to 2.0 involved breaking changes like replacing the Cron driver with DateTime and updating constant references, as noted in the README, which can disrupt existing implementations.