microweber-packages / microweber-queue
Standalone Laravel package for queue management: process pending jobs, Filament admin for jobs/failed jobs, and chunked Bus dispatch so large workloads (e.g. newsletter bulk sends) stay under job timeout limits.
Package info
github.com/microweber-packages/microweber-queue
pkg:composer/microweber-packages/microweber-queue
Requires
- php: ^8.2
- illuminate/bus: ^10.0|^11.0|^12.0|^13.0
- illuminate/config: ^10.0|^11.0|^12.0|^13.0
- illuminate/console: ^10.0|^11.0|^12.0|^13.0
- illuminate/database: ^10.0|^11.0|^12.0|^13.0
- illuminate/events: ^10.0|^11.0|^12.0|^13.0
- illuminate/http: ^10.0|^11.0|^12.0|^13.0
- illuminate/queue: ^10.0|^11.0|^12.0|^13.0
- illuminate/routing: ^10.0|^11.0|^12.0|^13.0
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- microweber-packages/microweber-package: *
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- filament/filament: ~5.0
- larastan/larastan: ^3.0
- laravel/dusk: ^8.0|^9.0
- livewire/livewire: ^3.0|^4.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
- filament/filament: Required for the Filament admin queue resources
Provides
None
Conflicts
None
Replaces
- microweber-packages/queue: *
This package is auto-updated.
Last update: 2026-11-03 17:07:28 UTC
README
Standalone Laravel package for queue management. Extracted from Microweber CMS and usable in any Laravel app.
Features
- Process pending jobs – process reserved/pending rows from the
jobstable safely - Chunked Bus dispatch – split huge workloads (e.g. 10 000 newsletter emails) into chunks so no single job hits the worker timeout
- Filament admin – list, delete, and re-dispatch jobs; manage failed jobs (retry / delete / flush)
- Migrations for
jobsandfailed_jobstables
Install (standalone Laravel)
composer require microweber-packages/microweber-queue php artisan vendor:publish --tag=microweber-queue-config php artisan migrate
Register the Filament plugin on your panel:
use MicroweberPackages\Queue\Filament\QueuePlugin; $panel->plugin(QueuePlugin::make());
Chunked dispatch (avoid timeouts)
use MicroweberPackages\Queue\Facades\ChunkedDispatcher; use App\Jobs\SendEmailToSubscriber; // 10_000 subscriber IDs → many small jobs via Laravel Bus batch ChunkedDispatcher::dispatch( items: $subscriberIds, jobFactory: fn (array $chunk) => new SendEmailToSubscriber($chunk, $campaignId), chunkSize: 100, queue: 'newsletter', name: 'campaign-42', );
Or with the helper:
chunked_dispatch($subscriberIds, fn (array $ids) => new SendEmailToSubscriber($ids, $campaignId), 100);
Config
See config/microweber-queue.php for chunk size, process limits, and Filament navigation.
Tests
composer test composer analyse # PHPStan level 9