Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Symfony Job Queue Bundle

Symfony Job Queue Bundle Laravel Package

dmstr/symfony-job-queue-bundle

View on GitHub
Deep Wiki
Context7

Persisted job tracking on top of Symfony Messenger: Job entity with status, JobQueueService for dispatch, JobMessage/JobMessageHandler for async execution.

Frequently asked questions about Symfony Job Queue Bundle
How do I integrate dmstr/symfony-job-queue-bundle into an existing Laravel project using Symfony Messenger?
First, require the package via Composer (`composer require dmstr/symfony-job-queue-bundle`). Configure it in your `config/packages/messenger.yaml` to extend Symfony Messenger, then register the `Job` Doctrine entity in your `AppKernel` or `config/bundles.php`. The bundle automatically adds job persistence and status tracking.
Does this bundle support Laravel’s queue system (e.g., database, redis) alongside Symfony Messenger?
No, this bundle is built specifically for Symfony Messenger. If you need Laravel’s native queue system, consider alternatives like `spatie/laravel-queue-jobs` or `laravel/framework`’s built-in queue workers. This bundle bridges Messenger with Doctrine for job persistence, not Laravel’s queue system.
What Laravel versions are compatible with dmstr/symfony-job-queue-bundle?
The bundle targets Symfony 5.4+/6.x, which aligns with Laravel 8+ (due to Symfony’s dependency). For Laravel 7 or older, you’ll need to check for legacy versions or alternatives. Always verify compatibility with your Symfony Messenger version in the bundle’s docs.
How do I dispatch a job with custom payload data using JobQueueService?
Use `JobQueueService::dispatch()` with an associative array or object as the payload. The service validates input, persists the job to Doctrine, and dispatches it to Messenger. Example: `$service->dispatch('my_message', ['key' => 'value']);`. The payload is stored in the `Job` entity for later retrieval.
Can I monitor job statuses (e.g., pending, running, failed) in real-time?
Yes, the bundle tracks status transitions (`pending → running → done/failed`) via the `Job` entity. You can query jobs by status in Doctrine or access them via the API Platform resource at `/admin/jobs`. For real-time updates, pair this with Laravel Echo or Symfony’s Mercure integration.
What happens if a job fails during async execution? How do I retry or handle errors?
Failed jobs are marked as `failed` in the `Job` entity and stored with the exception payload. To retry, use Symfony Messenger’s retry logic (e.g., `retry_for` in transport config) or manually update the job status and re-dispatch. The bundle doesn’t include a built-in retry UI, but you can extend the API Platform resource.
Is the Job entity compatible with Laravel Scout or other search services?
No, the `Job` entity is a Doctrine model tied to Symfony Messenger and isn’t designed for full-text search. For search functionality, you’d need to extend the entity or use a separate service like Laravel Scout to index job data. The bundle focuses on persistence and status tracking.
How do I secure the `/admin/jobs` API endpoint in production?
The `/admin/jobs` endpoint is exposed via API Platform and should be protected with authentication (e.g., Symfony’s security component or Laravel’s Sanctum/Passport). Configure role-based access in `config/packages/api_platform.yaml` or use middleware to restrict access to admin users.
Are there alternatives to dmstr/symfony-job-queue-bundle for Laravel that offer similar job tracking?
For Laravel, consider `spatie/laravel-queue-jobs` (for Laravel’s native queues) or `laravel/framework`’s built-in job middleware. If you’re using Symfony Messenger, `symfony/messenger` with a custom Doctrine entity is another option. This bundle is unique in combining Messenger with Doctrine + API Platform for job management.
How do I test job dispatching and status transitions in PHPUnit?
Mock the `JobQueueService` and `JobMessageHandler` in your tests. Verify job persistence by querying the `Job` repository and assert status transitions (e.g., `pending` → `running`). Use Symfony’s `MessengerTestTrait` or Laravel’s `Queue::fake()` for testing async behavior, though the latter won’t work directly with Messenger.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
calmfox/watch-sylius
damienfern/grpc-symfony-bundle
atoolo/index-bundle
atoolo/genai-bundle
coprotoai/laravel-ticket
davidjln/llm-carbon-bundle
cryonighter/valid-request-bundle
coolms/taxonomy-bundle
coolms/field-bundle
articulate-orm/symfony
aaix/laravel-tall-architect
ephoto/akeneo-connector
emmanuelballery/eb-plantumlbundle
emielburgman/symfony-visitor-beacon
emielburgman/symfony-visit-storage
emielburgman/symfony-security-headers
emielburgman/symfony-log-viewer
emarref/xdebug-bundle
emarref/pubnub-bundle
elriseio/finance-money-bundle