|
- <?php
-
- class Task_MQ_Redis implements Task_MQ {
-
- protected $redisCache;
-
- public function __construct(PhalApi_Cache_Redis $redisCache= NULL) {
- if ($redisCache === NULL) {
- $config = DI()->config->get('app.Task.mq.redis');
-
- if (!isset($config['host'])) {
- $config['host'] = '127.0.0.1';
- }
- if (!isset($config['port'])) {
- $config['port'] = 6379;
- }
- if (!isset($config['prefix'])) {
- $config['prefix'] = 'phalapi_task';
- }
-
- $redisCache = new PhalApi_Cache_Redis($config);
- }
-
- $this->redisCache = $redisCache;
- }
-
- public function add($service, $params = array()) {
- $num = $this->redisCache->rPush($service, $params);
-
- return $num > 0 ? TRUE : FALSE;
- }
-
- public function pop($service, $num = 1) {
- $rs = array();
-
- while($num > 0) {
- $params = $this->redisCache->lPop($service);
-
- if ($params === NULL) {
- break;
- }
-
- $rs[] = $params;
-
- $num--;
- }
-
- return $rs;
- }
- }
|