protected function _taskWorkerComplete($package) { $pid = $package['content']['pid']; $res = \Daemon\Library\Ipc\Shared::getCurrentTaskTable()->decr($pid, 'taskNum', 1); if (false === $res) { Log::monitor()->error(array(Monitor::KEY => Monitor::TABLE_DECR_ERR, '#package' => $package)); } $driveWorker = $this->_objManager->getDriveWorker(); list($drivePid, $driveProcess) = each($driveWorker); $ret = $driveProcess->write(json_encode($package) . Constant::PACKAGE_EOF); if (false === $ret) { Log::monitor()->error(array(Monitor::KEY => Monitor::IPC_PIPE_WRITE_ERR, '#package' => $package)); Log::redoLog(array('redo' => $package)); return false; } Log::billLog()->debug(array('#package' => $package, 'type' => 'complete')); return true; }
protected function _send($package) { $ret = $this->_worker->write(json_encode($package) . Constant::PACKAGE_EOF); if (false === $ret) { Log::monitor()->error(array(Monitor::KEY => Monitor::IPC_PIPE_WRITE_ERR, '%package' => $package)); Log::redoLog()->debug(array('redo' => $package)); } else { \Daemon\Library\Ipc\Shared::getMaxTaskNumAtomic()->add(1); } Log::billLog()->debug(array('%package' => $package, 'type' => 'send')); }
protected function _send($package) { $ret = $this->_worker->write(json_encode($package) . Constant::PACKAGE_EOF); if (false === $ret) { Log::monitor()->error(array(Monitor::KEY => Monitor::IPC_PIPE_WRITE_ERR, '^package' => $package)); Log::redoLog()->debug(array('redo' => $package)); } \Daemon\Library\Ipc\Shared::getMaxTaskNumAtomic()->sub(1); //在distribute进程减1有最短路径 if (\Daemon\Library\Ipc\Shared::getMaxTaskNumAtomic()->get() > 2 << 16) { \Daemon\Library\Ipc\Shared::getMaxTaskNumAtomic()->set(0); } Log::billLog()->debug(array('^package' => $package, 'type' => '_distributeResponse')); }