mc0/okq

okq持久队列的PHP驱动

dev-master 2016-02-27 16:57 UTC

This package is not auto-updated.

Last update: 2024-10-02 09:39:21 UTC


README

okq持久队列的okq PHP驱动。

okq使用redis协议和调用约定作为其接口,因此任何标准redis客户端都可以用来与之交互。然而,这个包封装了普通的redis驱动,以便提供便捷的接口进行交互。具体来说,它为事件消费者创建了一个简单的接口,以便他们通过通道检索事件,而不是每次都手动实现该逻辑。

用法

okQ的命令实现在Okq类中,其参数与okQ命令本身的参数相似。Okq类扩展了phpredis/Redis,可以使用相同的参数进行构造

$q = new Okq();
$q->connect('127.0.0.1', 4777);

然后,只需运行命令即可添加作业!

$event = array('test' => 1);
$eventId = '233'; // this can also be null and will be generated
$success = $q->qlpush('testQueue', json_encode($event), $eventId);

如果您是消费者,可以直接使用便利的consume方法。

/* the $callback can be any callable:
 - array('StaticClass', 'funcName')
 - array($obj, 'funcName')
 - 'funcName'
 - create_function('$event', '...')
*/
$callback = function ($event) use ($q) {
    // do anything or nothing at all
    return Okq::EVENT_ACK;
};
$timeout = 30;
$q->consume($callback, array('testQueue'), $timeout);