A symfony bundle to manage asynchronous distributed processing of stateful jobs
A symfony bundle for asynchronous distributed job processing using php-enqueue as transport layer.
Note: This project is still experimental!
- Asynchronous distributed processing of
- Job: a single job
- Batch: multiple jobs that are processed in parallel
- Sequence: multiple jobs processed in sequential order
- Free composition of Job, Sequence, and Batch
- Status information about jobs
- Cancellation and restarting of jobs
- Cron jobs (requires AbcSchedulerBundle 2.x)
- JSON REST-Api & PHP client library
- OpenApi documentation
You can find a demo here.
composer install abc/job-server-bundle
- EnqueueBundle is configured with a transport layer
In case you configured a transport with a key different that
defaultyou have to configure this transport also for the AbcJobServerBundle
abc_job_server: transport: my_transport_name
Create database and database schema
bin/console doctrine:database:create bin/console doctrine:schema:create
Start the command that processes replies from workers
bin/console abc:process:reply someReplyQueue
Create an application that will consume jobs using the AbcJobWorkerBundle that will process jobs.
abc_job_server: # the enqueue transport name transport: default # whether to enable the cronjob component cronjob: enabled: true # whether to enable the endpoints to cleanup jobs, and cronjobs cleanup: enabled: true
abc:broker:setup declares queues at the broker for all registered routes.
bin/console abc:broker:setup --help
abc:reply:process processes job replies from queues, updates job information and schedules dependant jobs
bin/console abc:reply:process --help
The MIT License (MIT). Please see License File for more information.