chesszebra/jobsystem

A PHP library providing a job system used to run background jobs.

0.1.0 2020-10-18 13:51 UTC

This package is auto-updated.

Last update: 2024-10-18 22:25:27 UTC


README

Build Status

A PHP library that provides support for executing worker jobs.

Installation

composer require chesszebra/jobsystem

Usage

Adding jobs:

<?php

// For this example we use Pheanstalk
$connection = new Pheanstalk\Pheanstalk('localhost');

// The storage to store jobs in
$storage = new ChessZebra\JobSystem\Storage\Pheanstalk($connection);
$storage->addJob(new \ChessZebra\JobSystem\Job\Job('my-worker', [
    'some' => 'parameter',
]));

Executing jobs:

<?php

// For this example we use Pheanstalk
$connection = new Pheanstalk\Pheanstalk('localhost');

// The storage where we retrieve jobs from.
$storage = new ChessZebra\JobSystem\Storage\Pheanstalk($connection);

// Setup a logger which is used to write information
$logger = ...; // Any PSR-3 compatible logger.

// A container with all workers
$workers = ...; // Any PSR-11 compatible container.

// Now create the client and run it. 
$client = new ChessZebra\JobSystem\Client($storage, $logger, $workers);
$client->run();

Development

Run composer and phpunit using Docker:

docker run --rm -it -v $(pwd):/data chesszebra/composer install 
docker run --rm -it -v $(pwd):/data chesszebra/phpunit