gandung/task-queue

Task queue library written in PHP

v1.0.2 2017-09-24 13:44 UTC

This package is auto-updated.

Last update: 2024-11-21 05:21:00 UTC


README

Task queue library written in PHP.

SensioLabsInsight Coverage Status Scrutinizer Code Quality Build Status

Registering single task

Existing functions or callbacks:

<?php

use TaskQueue\TaskQueue;
use TaskQueue\Invoker\FunctionInvoker;

$taskQueue = new TaskQueue;

$taskQueue->add(new FunctionInvoker('file_get_contents'), '/etc/passwd');

$taskQueue->run();

Closures:

<?php

use TaskQueue\TaskQueue;
use TaskQueue\Invoker\FunctionInvoker;

$taskQueue = new TaskQueue;

$closure = function() {
	echo "Hello with closures." . PHP_EOL;
};

$taskQueue->add(new FunctionInvoker($closure));

$taskQueue->run();

Class method with class name:

<?php

use TaskQueue\TaskQueue;
use TaskQueue\Invoker\MethodInvoker;

$taskQueue = new TaskQueue;

$taskQueue->add(new MethodInvoker(['instance' => \SplPriorityQueue::class, 'method' => 'count']));

$taskQueue->run();

Class method with class instance:

<?php

use TaskQueue\TaskQueue;
use TaskQueue\Invoker\MethodInvoker;

$queue = new \SplPriorityQueue;
$taskQueue = new TaskQueue;

$taskQueue->add(new MethodInvoker(['instance' => $queue, 'method' => 'count']));

$taskQueue->run();

Registering multiple tasks

Existing functions or callbacks:

<?php

use TaskQueue\TaskQueue;
use TaskQueue\Invoker\FunctionInvoker;

$taskQueue = new TaskQueue;

$taskQueue
	->add(new FunctionInvoker('file_get_contents'), '/etc/passwd')
	->add(new FunctionInvoker('printf'), '%d' . PHP_EOL, 31337);

$taskQueue->run();

Closures:

<?php

use TaskQueue\TaskQueue;
use TaskQueue\Invoker\FunctionInvoker;

$taskQueue = new TaskQueue;

$closures = [
	function() {
		echo "This will be a second run." . PHP_EOL;
	},
	function() {
		echo "This will be a first run." . PHP_EOL;
	}
];

$taskQueue
	->add(new FunctionInvoker($closures[0]))
	->add(new FunctionInvoker($closures[1]));

$taskQueue->run();

Unit testing

vendor/bin/phpunit