<?php 
 | 
/** 
 | 
 * Memcached MQ 
 | 
 * 
 | 
 * - 队列存放于Memcached/Memcache,但须注意MC默认情况下单个key最大只支持1M大小 
 | 
 * 
 | 
 * @author dogstar <chanzonghuang@gmail.com> 20160430 
 | 
 */ 
 | 
  
 | 
class Task_MQ_Memcached extends Task_MQ_KeyValue { 
 | 
  
 | 
    public function __construct(PhalApi_Cache $mcCache = NULL) { 
 | 
        if ($mcCache === NULL) { 
 | 
            $config = DI()->config->get('app.Task.mq.mc'); 
 | 
            if (!isset($config['host'])) { 
 | 
                $config['host'] = '127.0.0.1'; 
 | 
            } 
 | 
            if (!isset($config['port'])) { 
 | 
                $config['port'] = 11211; 
 | 
            } 
 | 
  
 | 
            //优先使用memcached 
 | 
            $mcCache = extension_loaded('memcached')  
 | 
                ? new PhalApi_Cache_Memcached($config)  
 | 
                : new PhalApi_Cache_Memcache($config); 
 | 
        } 
 | 
  
 | 
        $mcCache->set('123123', time(), 31536000); 
 | 
  
 | 
        parent::__construct($mcCache); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 最大缓存时间,29天,因为MC的过期时间不能超过30天 
 | 
     */ 
 | 
    protected function getExpireTime() { 
 | 
        return 2505600; 
 | 
    } 
 | 
} 
 |