ansien/simple-job-queue-bundle

Simple background jobs for your Symfony application without RabbitMQ or other external dependencies.

1.0.0 2019-11-26 21:21 UTC

This package is not auto-updated.

Last update: 2024-04-24 16:48:31 UTC


README

Warning: This package is abandoned and no longer maintained. Use schmittjoh/JMSJobQueueBundle package instead.

SimpleJobQueueBundle

Latest Version on Packagist MIT Licensed Build Status Total Downloads

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.