manager = $manager; $this->config = $config; } public function listenMessage($workerId) { $this->workerId = $workerId; $this->subscribe(); } public function sendMessage($workerId, $message) { if ($workerId === $this->workerId) { $this->manager->triggerEvent('message', $message); } else { $this->publish($workerId, $message); } } abstract public function getType(); abstract public function prepare($workerNum); abstract public function subscribe(); abstract public function publish($workerId, $message); }