Как запустить метод Artisan::call() через Ajax в режиме обслуживания в Laravel 12Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как запустить метод Artisan::call() через Ajax в режиме обслуживания в Laravel 12

Сообщение Anonymous »

Я обновил приложение Lravel 10 до последней версии Laravel 12.36.1.
В приложении Laravel 10 у меня есть вызов Ajax в бэк-офисе, чтобы перевести проект вниз или вверх, который вызывает метод setMaintenanceMode(string $mode), например:

Код: Выделить всё

use Artisan;
use Str;

class MaintenanceService {

public function setMaintenanceMode(string $mode): array
{
if($mode == 'down') {
Artisan::call('down', [
'--render' => 'errors.maintenance',
'--secret' => config('app.maintenance.secret'),
'--retry'  => config('app.maintenance.app_downtime_seconds', 600),
]);
session()->put('maintenance_mode', true);
}
if($mode == 'up') {
Artisan::call('up');
session()->forget('maintenance_mode');
}

$mode_new = $mode == 'down' ? 'up' : 'down';

$data = [
'command'           => $mode,
'command_name'      => ucfirst($mode),
'command_name_slug' => Str::slug($mode),
'last_run'          => now(),
'run_mode'          => 'manual',
'run_result'        => 1,
];

return [
'message'  => session()->has('maintenance_mode') ? 'Site is down' : 'Site is up',
'mode'     => $mode,
'new_mode' => $mode_new,
'class'    => session()->has('maintenance_mode') ? 'danger' : 'success',
];
}
}
Даже в режиме обслуживания файл down, установленный Laravel, можно удалить при вызове метода setMaintenanceMode(string $mode), поскольку значение передается $mode="up".
В Laravel 10 это работает, но в Laravel 12 при использовании того же метода, что и выше, и попытке поднять проект вверх, передав значение как $mode="up" выдает ошибку 503, а вызов Ajax возвращает ее как 503.
Мой вопрос: есть ли способ переопределить режим обслуживания при вызове Artisan::call() в режиме обслуживания и получить статус 200 ok?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -laravel-1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»