publish($queue ?? $this->getQueueFromProject($message->project), $message); } public function getSize(bool $failed = false, ?Queue $queue = null): int { return $this->getQueueSize($queue ?? $this->queue, $failed); } private function getQueueFromProject(?Document $project): Queue { $database = $project?->getAttribute('database', ''); if (empty($database)) { return $this->queue; } try { $dsn = new DSN($database); } catch (\InvalidArgumentException) { $dsn = new DSN('mysql://' . $database); } return new Queue($dsn->getHost()); } }