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
default
you have to configure this transport also for the AbcJobServerBundleabc_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
The command abc:broker:setup
declares queues at the broker for all registered routes.
bin/console abc:broker:setup --help
The command 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.