public function dispatch($command, Closure $afterResolving = null) { if ($this->queueResolver && $this->commandShouldBeQueued($command)) { return $this->dispatchToQueue($command); } else { return $this->dispatchNow($command, $afterResolving); } }
/** * @param Dispatcher $bus * @throws \Exception */ public function handle(Dispatcher $bus) { try { if ($this->release->isCancelled()) { return; } $this->release->update(['status' => Release::PREPARING]); $this->release->logger()->comment("Preparing release..."); $this->prepareReleaseDir(); $this->createArchive(); $this->extractArchive(); $this->writePlaybooks(); if ($this->release->isCancelled()) { return; } if ($this->sync) { $bus->dispatchNow(new PlaybookJob($this->release)); $bus->dispatchNow(new CleanupReleasesJob($this->release->repo)); } else { $bus->dispatch(new PlaybookJob($this->release)); $bus->dispatch(new CleanupReleasesJob($this->release->repo)); } } catch (\Exception $e) { $this->release->update(['status' => Release::ERROR, 'raw_logs' => $e->getMessage()]); $this->release->logger()->push(); throw $e; } }