Skip to content

Commit

Permalink
improve job dispatching for media optimization and preview generation
Browse files Browse the repository at this point in the history
  • Loading branch information
imahmood committed Feb 26, 2024
1 parent fcdbf46 commit 4de8a8f
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions src/FileStorage.php
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,7 @@ protected function persistMedia(Media $media, ?UploadedFile $uploadedFile): Medi
throw new UploadException();
}

if ($this->config->generatePreview) {
$this->generatePreview($media);
}
$this->dispatchJobs($media);

AfterMediaUploaded::dispatch($media);
}
Expand All @@ -145,17 +143,22 @@ protected function persistMedia(Media $media, ?UploadedFile $uploadedFile): Medi
}

/**
* Generate preview for the given Media.
* Dispatches jobs for optimizing and generating preview.
*/
protected function generatePreview(Media $media): void
protected function dispatchJobs(Media $media): void
{
$jobs = [];

if ($media->is_image) {
Bus::chain([
new OptimizeImage($media),
new GeneratePreview($media),
])->onQueue($this->config->queueName)->dispatch();
} elseif ($media->is_pdf) {
GeneratePreview::dispatch($media)->onQueue($this->config->queueName);
$jobs[] = new OptimizeImage($media);
}

if ($this->config->generatePreview && ($media->is_image || $media->is_pdf)) {
$jobs[] = new GeneratePreview($media);
}

if ($jobs) {
Bus::chain($jobs)->onQueue($this->config->queueName)->dispatch();
}
}

Expand Down

0 comments on commit 4de8a8f

Please sign in to comment.