Warning: This package is abandoned and no longer maintained. Use schmittjoh/JMSJobQueueBundle package instead.
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.
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.
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'
]);
You can run all pending jobs while developing by using:
php bin/console simple-job-queue:run
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
Please see CHANGELOG for more information what has changed recently.
composer test
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.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.