A symfony bundle to manage asynchronous distributed processing of stateful jobs

0.4.3 2020-12-01 20:07 UTC

This package is not auto-updated.

Last update: 2022-11-30 05:14:59 UTC


Build Status

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

Getting Started


  • EnqueueBundle is configured with a transport layer


  1. In case you configured a transport with a key different that default you have to configure this transport also for the AbcJobServerBundle

        transport: my_transport_name
  2. Create database and database schema

    bin/console doctrine:database:create
    bin/console doctrine:schema:create
  3. Start the command that processes replies from workers

    bin/console abc:process:reply someReplyQueue
  4. Create an application that will consume jobs using the AbcJobWorkerBundle that will process jobs.

Configuration Reference


    # the enqueue transport name
    transport: default
    # whether to enable the cronjob component
        enabled: true
    # whether to enable the endpoints to cleanup jobs, and cronjobs
        enabled: true


Command abc:broker:setup

The command abc:broker:setup declares queues at the broker for all registered routes.

bin/console abc:broker:setup --help

Command abc:reply:process

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.