Медиатека spatie regenerate artisan command не работает в работе над производством

Я использую медиа-библиотеку Spatie для одного из моих проектов. Требование заключается в том, что когда статус загруженного изображения одобрен, генерируются конверсии этого конкретного изображения. Итак, я пишу код для этого в моей модели:

public function registerMediaConversions(Media $media = null)
{
    $listingStatus = ListingStatus::where('type', Listing::ITEM_TYPE_PHOTOS)->where('item_id', $media->id)->where('status', self::STATUS_APPROVED)->whereNotNull('review_by')->first();
    if ($listingStatus)
        $this->registerBaseConversions(true);
}

и когда изображение получает одобрение, я отправляю задание для команды запуска.

$this->dispatch(new GenerateMediaCollection($mediaId));

Работа:

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Log;

class GenerateMediaCollection implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

private $mediaId;
/**
 * Create a new job instance.
 *
 * @return void
 */
public function __construct($mediaId)
{
    $this->mediaId = $mediaId;
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    Log::info('generate Media collection');
    exec('php artisan medialibrary:regenerate --ids='.$this->mediaId);
}
}

Итак, в Local все работает отлично, но на сервере задание обрабатывается, но конверсии не добавляются. если я запускаю команду на сервере с терминала, то она работает. Итак, что я должен сделать для этой проблемы? ТИА.

что вы видите в лог-файлах? ошибки или ничего?

Roman Meyer 27.02.2019 13:58

в лог-файлах ничего.

Jinal Somaiya 28.02.2019 05:55

как вы обрабатываете свои рабочие места? куратором или?

Roman Meyer 28.02.2019 07:51

используя Horizon на сервере Forge, добавьте Daemon.

Jinal Somaiya 28.02.2019 08:05

проверьте системного пользователя, который управляет вашей файловой системой проекта, и пользователя, который управляет заданиями. они один и тот же системный пользователь?

Roman Meyer 28.02.2019 09:57

простите, как проверить?

Jinal Somaiya 28.02.2019 10:49

Давайте продолжить обсуждение в чате.

Roman Meyer 28.02.2019 13:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
536
1

Ответы 1

Попробуйте добавить --force к аргументам. т.е. сделай это

exec('php artisan medialibrary:regenerate --ids='.$this->mediaId --force')

Рад, что смог тебе помочь.

Moin Gandhi 09.03.2019 07:20

Другие вопросы по теме