abc/job-server-bundle

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: 2021-11-17 00:33:35 UTC


README

Build Status

A symfony bundle for asynchronous distributed job processing using php-enqueue as transport layer.

Note: This project is still experimental!

Features

  • 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

Demo

You can find a demo here.

Installation

composer install abc/job-server-bundle

Getting Started

Prerequisites

  • EnqueueBundle is configured with a transport layer

Steps

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

    abc_job_server:
        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

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

Commands

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

License

The MIT License (MIT). Please see License File for more information.