indatus/dispatcher
Indatus Dispatcher is a Laravel package for scheduling Artisan commands and queued jobs with a fluent API. Define cron-style schedules, manage overlaps, and log or email command output, offering a flexible alternative to Laravel's built-in scheduler.
crontab sprawl to a single entry — and was then absorbed into the framework itself (Laravel 5.0's Schedule class and schedule:run). It directly supports the decision to prefer framework-native capabilities over community packages when the problem is core to the application's runtime.app/Console/Kernel.php::schedule(). That makes it a scoping input for upgrade epics: inventory scheduled events, port cron expressions, validate parity, cut the dependency.->daily(), ->everyMinute(), environment-gated events) and lets you evaluate whether to expose schedule visibility — a read-only "what runs when" view — to operators and support teams.Consider it only in maintenance scenarios:
Look elsewhere in essentially every other case:
Illuminate\Console\Scheduling\Schedule. It covers the same cron-expression DSL, adds overlap prevention, background execution, output logging, and onOneServer semantics that Dispatcher never had.symfony/scheduler or plain cron with a single dispatcher script.Adoption blockers that should be treated as disqualifying for new work: no release since March 2015, no maintainer activity, near-certain incompatibility with PHP 7+/8+, no security response path, and zero dependent packages — no ecosystem signal that anyone is exercising it. Treat it as archived.
To executives: This is a legacy utility, not a candidate for investment. It popularized a good idea — keeping scheduled jobs in version-controlled application code instead of scattered server crontabs — and that idea is now a built-in feature of our framework. We should not add it to anything new, and where it exists we should fold it into the framework's native scheduler during the next planned upgrade. Cost avoided: an unmaintained third-party dependency that no one is patching, with a contained and mechanical exit path.
To engineering: The design pattern is right, the package is dead. If you're on Laravel 5+, you already have everything it does and more — port the schedule definitions to Kernel::schedule(), keep one cron entry calling schedule:run, and delete the dependency. If you're on Laravel 4.x, this stays until the framework upgrade; scope the port as a known-size task (one event per cron expression, verify environment gating and output handling) rather than an open-ended refactor.
How can I help you explore Laravel packages today?