- What is Indatus Dispatcher used for in Laravel?
- Indatus Dispatcher lets you declare Artisan command schedules in Laravel source code instead of editing crontab on each deploy. It supports command frequencies, a single cron entry, queued tasks, and output logging. It is a legacy package intended for Laravel 4.x and 5.0 applications only.
- Does indatus/dispatcher work with Laravel 5.1 or newer?
- No. Laravel 5.1 absorbed command scheduling into core via Illuminate\Console\Scheduling and app/Console/Kernel.php::schedule(), so adopting Dispatcher on 5.1 or newer creates a redundant second scheduler. Its illuminate/* constraints date to 2015 and will almost certainly conflict with any modern laravel/framework. Treat the native scheduler as the correct choice for 5.1+.
- How do I install and configure indatus/dispatcher?
- On a Laravel 4.x or 5.0 app, install it with Composer, register the package service provider, optionally publish its config, and add one cron entry that invokes the package's schedule runner. Confirm the exact Schedulable class contract, runner command name, and cron syntax against the repository README rather than assuming. Dependency resolution is the real gate, so check Composer constraints against your lockfile first.
- Is indatus/dispatcher compatible with PHP 8?
- Probably not. The code dates to 2015 and predates PHP 7 and 8 hardening, so you may hit removed constructs, dynamic-property deprecations, or fatal errors on PHP 8. Test on your exact runtime before committing, and treat PHP compatibility as a separate checkpoint from Laravel version support.
- How do I run scheduled jobs with only one cron entry using Dispatcher?
- Dispatcher is designed to replace many crontab lines with a single every-minute cron entry that calls its schedule runner, while individual command frequencies are declared in code. Verify the entry point and cron contract in the repo README for your version. When you migrate, replace that entry with php artisan schedule:run every minute.
- Does Indatus Dispatcher support queued tasks and logging?
- Yes, the package's scheduling DSL supports queued tasks and logging command output as part of its feature set. Those features are also available in Laravel's native scheduler, so they are not a reason to adopt the legacy package on 5.1 or newer. For legacy apps, avoid adding new queued or logged schedules while planning migration.
- Why does composer require indatus/dispatcher fail on my Laravel app?
- This is expected on Laravel 5.1 or newer. The package's illuminate/* constraints from 2015 conflict with modern laravel/framework, so Composer cannot resolve a compatible set. Run composer require --dry-run or composer why-not indatus/dispatcher against your lockfile to confirm, then migrate to the native scheduler.
- What are the alternatives to indatus/dispatcher?
- For Laravel 5.1 and newer, use the native scheduler in app/Console/Kernel.php with schedule:run, withoutOverlapping, and onOneServer, and add monitoring such as spatie/laravel-schedule-monitor or a heartbeat check. For legacy 4.x and 5.0 apps, treat Dispatcher as a contained dependency with a documented exit plan rather than evaluating it as a long-term option.
- Is indatus/dispatcher maintained and safe for production?
- No. The last release was 2015-03-26, there are zero dependents, there is no security response path, and there is no upstream maintainer. Scheduling is operationally sensitive, and this package predates native withoutOverlapping, onOneServer, and schedule monitoring, so missed or duplicate runs can be silent and expensive. Budget an explicit fork-and-patch allowance only if the legacy app cannot migrate this quarter.
- How do I migrate from indatus/dispatcher to Laravel's native scheduler?
- Inventory every schedule and its cadence, timezone, and overlap behavior, then translate each to native schedule() entries using command(), cron() or frequency helpers, timezone(), withoutOverlapping(), and onOneServer() where applicable. Replace the package cron entry with php artisan schedule:run every minute, shadow-run both definitions in non-production, and diff due-time evaluation before cutover. Then remove the package, its provider, and its config, and add schedule monitoring.