<?php error_reporting(~E_WARNING & ~E_NOTICE & E_ALL); require 'IQueue.php'; require 'RabbitQueue.php'; require 'MemcachedQueue.php'; require 'MongodbQueue.php'; require 'RedisQueue.php'; require 'MessageQueueProxy.php'; $config = (require 'config.php'); $class = $config['driver']; $mq = new $class($config['driverInfo']); $mobileMessageObj = new MessageQueueProxy($mq); $time = 100; $num = 5000; $success = 0; for ($j = 0; $j < $time; ++$j) { $start = microtime(true); for ($i = 0; $i < $num; ++$i) { $mobile = '1355' . rand(1000000, 9999999); $content = 'this is your phone number: ' . $mobile . '.'; $message = array('mobile' => $mobile, 'content' => $content); if (!$mobileMessageObj->push(serialize($message))) { echo "on index:", $j * $num + $i + 1, " push error !"; goto pushout; } ++$success; } $result[] = microtime(true) - $start; echo intval(($j + 1) / $time * 100), "% "; }
<?php error_reporting(~E_NOTICE & E_ALL); require 'IQueue.php'; require 'RabbitQueue.php'; require 'MemcachedQueue.php'; require 'MongodbQueue.php'; require 'RedisQueue.php'; require 'MessageQueueProxy.php'; $config = (require 'config.php'); $class = $config['driver']; $mq = new $class($config['driverInfo']); $mobileMessageObj = new MessageQueueProxy($mq); $num = 10000; echo $start = microtime(true); for ($i = 0; $i < $num; ++$i) { $mobile = '1355' . rand(1000000, 9999999); $content = 'this is your phone number: ' . $mobile . '.'; $message = array('mobile' => $mobile, 'content' => $content); if (!$mobileMessageObj->push(serialize($message))) { echo "push error !"; break; } } echo " -- times: {$num} takes: ", microtime(true) - $start, "s size: ", $mobileMessageObj->size(), "\n";
<?php error_reporting(~E_NOTICE & E_ALL); require 'IQueue.php'; require 'RabbitQueue.php'; require 'MemcachedQueue.php'; require 'MongodbQueue.php'; require 'RedisQueue.php'; require 'MessageQueueProxy.php'; $config = (require 'config.php'); $class = $config['driver']; $mq = new $class($config['driverInfo']); $mobileMessageObj = new MessageQueueProxy($mq); $num = 10000; echo $start = microtime(true); for ($i = 0; $i < $num; ++$i) { $message = $mobileMessageObj->pop(); if (empty($message)) { break; } $messageInfo = $message; send_mobile_message($messageInfo['mobile'], $messageInfo['content']); } echo " -- times: {$num} takes: ", microtime(true) - $start, "s size: ", $mobileMessageObj->size(), "\n"; function send_mobile_message($mobile, $content) { usleep(1000); //0.001s }