| <?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; | 
|     } | 
| } |