我还是贴一下我的部分代码吧, 可以确定是有我前面说的那个问题的
while (true) {
$messageBody = $cacheHandle->brpop(array(
XXQueue::QUEUE_KEY_LEAVE1,
XXQueue::QUEUE_KEY_LEAVE2,
XXQueue::QUEUE_KEY_LEAVE3
), 0);
list($key, $value) = $messageBody;
$jsonContent = json_decode($value, true);
$className = $jsonContent['class'];
$params = $jsonContent['params'];
// 固定在某个命名空间下面
$classInstance = 'Api\\Queue\\' . $className;
XXLog::OriginalWriteArray("queue_message", [
'time' => date('Y-m-d H:i:s'),
'class_name' => $classInstance,
'value' => $value,
'result' => 'begin'
]);
if (!class_exists($classInstance)) {
continue;
}
try {
$newClass = new $classInstance();
if (!$newClass instanceof Queue\IQueue) {
XXLog::OriginalWriteString("queue_message", "$newClass not implements Queue\\IQueue!");
continue;
}
$newClass->run($params);
......