1. Go to this page and download the library: Download rybakit/phive-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/ */
rybakit / phive-queue example snippets
use Phive\Queue\InMemoryQueue;
use Phive\Queue\NoItemAvailableException;
$queue = new InMemoryQueue();
$queue->push('item1');
$queue->push('item2', new DateTime());
$queue->push('item3', time());
$queue->push('item4', '+5 seconds');
$queue->push('item5', 'next Monday');
// get the queue size
$count = $queue->count(); // 5
// pop items off the queue
// note that is not guaranteed that the items with the same scheduled time
// will be received in the same order in which they were added
$item123 = $queue->pop();
$item123 = $queue->pop();
$item123 = $queue->pop();
try {
$item4 = $queue->pop();
} catch (NoItemAvailableException $e) {
// item4 is not yet available
}
sleep(5);
$item4 = $queue->pop();
// clear the queue (will remove 'item5')
$queue->clear();
public MongoQueue::__construct(MongoClient $mongoClient, string $dbName, string $collName)
use Phive\Queue\MongoQueue;
$client = new MongoClient();
$queue = new MongoQueue($client, 'my_db', 'my_coll');
public RedisQueue::__construct(Redis $redis)
use Phive\Queue\RedisQueue;
$redis = new Redis();
$redis->connect('127.0.0.1');
$redis->setOption(Redis::OPT_PREFIX, 'my_prefix:');
// Since the Redis client v2.2.5 the RedisQueue has the ability to utilize serialization:
// $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
$queue = new RedisQueue($redis);
public TarantoolQueue::__construct(Tarantool $tarantool, string $tubeName [, int $space = null ])
use Phive\Queue\TarantoolQueue;
$tarantool = new Tarantool('127.0.0.1', 33020);
$queue = new TarantoolQueue($tarantool, 'my_tube');
public PheanstalkQueue::__construct(Pheanstalk\PheanstalkInterface $pheanstalk, string $tubeName)
use Pheanstalk\Pheanstalk;
use Phive\Queue\PheanstalkQueue;
$pheanstalk = new Pheanstalk('127.0.0.1');
$queue = new PheanstalkQueue($pheanstalk, 'my_tube');
use Phive\Queue\Pdo\GenericPdoQueue;
$pdo = new PDO('pgsql:host=127.0.0.1;port=5432;dbname=my_db', 'db_user', 'db_pass');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$queue = new GenericPdoQueue($pdo, 'my_table', 'my_routine');
$pdo->exec('PRAGMA journal_mode=WAL');
public SqlitePdoQueue::__construct(PDO $pdo, string $tableName)
use Phive\Queue\Pdo\SqlitePdoQueue;
$pdo = new PDO('sqlite:/opt/databases/my_db.sq3');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('PRAGMA journal_mode=WAL');
$queue = new SqlitePdoQueue($pdo, 'my_table');
public SysVQueue::__construct(int $key [, bool $serialize = null [, int $perms = null ]] )
use Phive\Queue\SysVQueue;
$queue = new SysVQueue(123456);
public InMemoryQueue::__construct()
use Phive\Queue\InMemoryQueue;
$queue = new InMemoryQueue();
use Phive\Queue\GenericPdoQueue;
use Phive\Queue\TypeSafeQueue;
$queue = new GenericPdoQueue(...);
$queue = new TypeSafeQueue($queue);
$queue->push(['foo' => 'bar']);
$array = $queue->pop(); // ['foo' => 'bar'];
use Phive\Queue\MongoQueue;
$queue = new MongoQueue(...);
// mongodb server goes down here
$queue->push('item'); // throws MongoConnectionException
use Phive\Queue\ExceptionalQueue;
use Phive\Queue\MongoQueue;
$queue = new MongoQueue(...);
$queue = new ExceptionalQueue($queue);
// mongodb server goes down here
$queue->push('item'); // throws Phive\Queue\QueueException