chesszebra / jobsystem
A PHP library providing a job system used to run background jobs.
0.1.0
2020-10-18 13:51 UTC
Requires
- php: ^7.2
- ext-json: *
- doctrine/dbal: *
- psr/container: ^1.0
- psr/log: ^1.0
Requires (Dev)
- chesszebra/coding-standards: dev-master
- pda/pheanstalk: ^4.0
- phpunit/phpunit: ^6.3
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-10-18 22:25:27 UTC
README
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