ac/fiendish-bundle
Symfony2 bundle for writing and controlling daemons. Integrates with RabbitMQ and Supervisor to start/stop and dynamically manage processes by group, with a BaseDaemon class and heartbeat support for long-running workers.
artisan schedule) or queue workers (e.g., laravel-horizon) could partially replace this, but the Supervisor + RabbitMQ orchestration model is unique.Process table for tracking daemon state, adding complexity to Laravel’s typically lightweight task management.Process component or using symfony/process via Composer).laravel-queue) uses different drivers (Redis, database, SQS). RabbitMQ integration would require a custom queue connector.schedule:run or queue:work handles process management natively.spatie/laravel-background-jobs may offer similar functionality with lower friction.EventDispatcher and Container are not directly interchangeable with Laravel’s Illuminate\Container or Events system.OldSoundRabbitMqBundle) is Symfony-specific; Laravel’s queue system would need a custom bridge.laravel-horizon) be preferable?schedule:run cannot address?Process table integrate with Laravel’s migrations? Would it conflict with existing task tracking (e.g., jobs table)?Process facade) be feasible?Kernel, EventDispatcher, and Process components are incompatible with Laravel’s Illuminate stack.queue:work, schedule:run).symfony/process via Composer to replace Symfony’s Process component.RabbitMQConnector for Illuminate\Queue).Process::pidFile()).Illuminate\Bus\Queueable or Illuminate\Console\Command.Process table with Laravel’s jobs table or a custom migration.artisan commands (e.g., artisan daemon:run) instead of Symfony’s console commands.Illuminate\Container) lacks Symfony’s ParameterBag and EventDispatcher hooks. Would need polyfills.kernel.terminate). Laravel’s events are similar but not identical.migrations; Symfony2 uses DoctrineMigrations. The Process table schema would need manual adaptation.Process facade for process management.RabbitMQQueue service for Illuminate\Queue.HttpKernel if the bundle relies on it (unlikely for daemons).Process and Queue systems.fiendish:master-daemon with a custom artisan daemon:start command.queue:work, custom commands).supervisor_twiddler for dynamic process control (e.g., restarting failed workers).Process table to Laravel’s schema or use a package like spatie/laravel-activitylog for tracking.monolog) would require customization.Process table).queue:work) already support horizontal scaling; Supervisor adds redundancy but may not be necessary.queue:work with supervisor is often sufficient.| Component | Failure Scenario | Mitigation |
|---|---|---|
| Supervisor | Process crashes or hangs | Use autostart=true, autorestart=true, and stderr_logfile for debugging. |
| **Rabbit |
How can I help you explore Laravel packages today?