Task Queue
Task queue library written in PHP.
, (*1)
Registering single task
Existing functions or callbacks:, (*2)
<?php
use TaskQueue\TaskQueue;
use TaskQueue\Invoker\FunctionInvoker;
$taskQueue = new TaskQueue;
$taskQueue->add(new FunctionInvoker('file_get_contents'), '/etc/passwd');
$taskQueue->run();
Closures:, (*3)
<?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:, (*4)
<?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:, (*5)
<?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:, (*6)
<?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:, (*7)
<?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