ansien / simple-job-queue-bundle
Simple background jobs for your Symfony application without RabbitMQ or other external dependencies.
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Type:symfony-bundle
Requires
- php: >=7.3.0
- symfony/lock: ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpro/grumphp: ^0.16.2
This package is not auto-updated.
Last update: 2024-11-20 19:16:44 UTC
README
Warning: This package is abandoned and no longer maintained. Use schmittjoh/JMSJobQueueBundle package instead.
SimpleJobQueueBundle
The bundle makes it very easy to run background jobs in your Symfony application, without the use of a message queue such as RabbitMQ.
This allows you to speed up your Symfony application by runnings heavy tasks or calculations in the background.
Installation
You can install the package via composer:
composer require ansien/simple-job-queue-bundle
After installation: create a migration or run the php bin/console doctrine:schema:update --force
command to create the sjqb_jobs
table.
Usage
Creating a job
You can inject the Ansien\SimpleJobQueueBundle\Service\SimpleJobService
service. This service allows you to easily create a job. You can also manually create and persist an instance of Ansien\SimpleJobQueueBundle\Entity\Job
.
$this->simpleJobService->createJob('app:test-command', [ 'foo' => 'bar' '--optional-foo' => 'bar' ]);
Running pending jobs (development environment)
You can run all pending jobs while developing by using:
php bin/console simple-job-queue:run
Running pending jobs (production environment)
In your production environment it is recommended to use Supervisor which allows you to run multiple jobs in parallel and automatically recover if a job crashes guaranteeing high availability.
Below is an example config which you can use:
[program:simple_job_queue] command=php %kernel.root_dir%/console simple-job-queue:run --env=prod --verbose process_name=%(program_name)s numprocs=1 directory=/tmp autostart=true autorestart=true startsecs=5 startretries=10 user=www-data redirect_stderr=false stdout_logfile=/var/log/simple_job_queue.out.log stdout_capture_maxbytes=1MB stderr_logfile=/var/log/simple_job_queue.error.log stderr_capture_maxbytes=1MB
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
composer test
Credits
This bundle is heavily inspired by the more popular JMSJobQueueBundle. The reason for this bundle being created is the lack of updates on that bundle and missing Symfony 5 support.
Contributing
Please see CONTRIBUTING for details.
License
The MIT License (MIT). Please see License File for more information.