1. Go to this page and download the library: Download silverslice/redis-queue library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
silverslice / redis-queue example snippets
namespace Silverslice\RedisQueue\Examples\Jobs;
use Silverslice\RedisQueue\AbstractJob;
class TestJob extends AbstractJob
{
public $message;
public function execute()
{
echo $this->message . ' ' . date('H:i:s') . "\n";
}
}
use Silverslice\RedisQueue\Connection;
use Silverslice\RedisQueue\Queue;
use Silverslice\RedisQueue\Examples\Jobs\TestJob;
b->message = 'My message';
// push to the queue
$queue->push($job);
// push to the queue with delay 2 seconds
$queue->pushWithDelay($job, 2);
use Silverslice\RedisQueue\AbstractJob;
use Silverslice\RedisQueue\Connection;
use Silverslice\RedisQueue\Worker;
ame:']);
if (!isset($options['name'])) {
echo 'Usage: php worker.php --name worker_name' . PHP_EOL;
exit(1);
}
$conn = new Connection();
$conn->consumer = $options['name'];
$worker = new Worker($conn);
$worker->setDebug(true);
$worker->onFail(function (AbstractJob $job, \Throwable $e) {
echo '[!] Job failed: ' . serialize($job) . PHP_EOL;
echo '[.] Error: ' . $e->getMessage() . PHP_EOL;
});
$worker->run();
use Silverslice\RedisQueue\Connection;
use Silverslice\RedisQueue\SystemWorker;
es = 3;
$worker->setDebug(true);
// if job crashes more than maxFailures times
$worker->onFail(function($message, $id) {
echo '[!] Message rejected: ' . $message . ' (id='. $id .')' . PHP_EOL;
});
$worker->run();
class TestJob extends AbstractJob
{
public $message;
public function execute()
{
}
/**
* Is job retryable?
*
* @param int $retries Number of retry
* @return bool
*/
public function isRetryable($retries): bool
{
return $retries <= 5;
}
/**
* Returns retry delay in seconds
*
* @param $retries
* @return int
*/
public function getRetryDelay($retries): int
{
return 1 * 2 ** ($retries - 1);
}
}
use Silverslice\RedisQueue\Connection;
use Silverslice\RedisQueue\Queue;
use Silverslice\RedisQueue\Examples\Jobs\TestJob;
later
$job = new TestJob();
$job->message = 'Message with delay';
$queue->pushWithDelay($job, 10, true);
// overwrite delay
$queue->pushWithDelay($job, 15, true);
$date = date('Y-m-d H:i:s');
echo "[$date] Message sent\n";
$queue = new SyncQueue($connection);
$job = new TestJob();
$job->message = 'My first job';
// will be executed synchronously
$queue->push($job);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.