Size: a a a

2020 December 08

ЕП

Егор Полищук... in Laravel Pro
Jim Gitt
Роуты в каком файле? api или web?
Сейчас про api, разве там нужен csfr-токен?
источник

AP

Alexander Pavlenko 🌚... in Laravel Pro
нет
источник

AP

Alexander Pavlenko 🌚... in Laravel Pro
роуты под каким мидлваром?
источник

JG

Jim Gitt in Laravel Pro
Егор Полищук
Сейчас про api, разве там нужен csfr-токен?
Нет, там не нужен.
источник

JG

Jim Gitt in Laravel Pro
MaZaHaKa 7
Было такое, что не отправляли Accept: application/json

И при ошибке валидации он редиректил
@egor_yes Это тоже возможный вариант. Если используешь реквесты для проверки
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
Ребзя, подскажите как правильно сделать.

Надо запускать джобы, некоторые последовательно, некоторые параллельно, и всё в цепочке.

Например запустить один джоб, после его выполнения запустить параллельно 2 джоба, и после завершения обоих последовательно запустить четвертый джоб. Как бы вы сделали?

Накие структуры запуска джобов будут задаваться кастомно и могут быть более длинные цепочки джобов, выполняемых параллельно и последовательно после завершения всех параллельных
источник

А

Антон in Laravel Pro
Евгений Перин ⭐️
Ребзя, подскажите как правильно сделать.

Надо запускать джобы, некоторые последовательно, некоторые параллельно, и всё в цепочке.

Например запустить один джоб, после его выполнения запустить параллельно 2 джоба, и после завершения обоих последовательно запустить четвертый джоб. Как бы вы сделали?

Накие структуры запуска джобов будут задаваться кастомно и могут быть более длинные цепочки джобов, выполняемых параллельно и последовательно после завершения всех параллельных
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
\Bus::chain([
   function () {
       \Log::info('1');
   },
   function () {
        $batch = \Bus::batch([
           function () {
               sleep(3);
               \Log::info('2');
           },
           function () {
               \Log::info('3');
           },
       ])->dispatch();
   },
   function () {
       \Log::info('4');
   },
])->dispatch();
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
в таком случае будет выполнено 1 4 2 3
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
а мне надо 1 2 3 4
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
сейчас делаю так

\Bus::chain([
   function () {
       \Log::info('1');
   },
   function () {
        $batch = \Bus::batch([
           function () {
               sleep(3);
               \Log::info('2');
           },
           function () {
               \Log::info('3');
           },
       ])->dispatch();

       while (!$batch->fresh()->finished()) {
           usleep(100);
       }
   },
   function () {
       \Log::info('4');
   },
])->dispatch();
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
то есть проверяю в while что батч не зафинишился еще
источник

А

Антон in Laravel Pro
Диспатчить в одной джобе другую или цепочку других?
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
почему то внутреннее сопротивление по диспатчу джобы из другой джобы
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
для конкретно данной ситуации
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
потому что все эти батчи будут собираться в цикле из созданной структуры, и получится там будет рекурсивно пропихиваться друг в друга
источник

А

Антон in Laravel Pro
Да, это плохой вариант, так как сложнее управляется (условно, если надо будет поменять порядок, придется лезть в джобу), но рабочий. Хз, тогда писать собственный механизм.
источник

А

Антон in Laravel Pro
Евгений Перин ⭐️
потому что все эти батчи будут собираться в цикле из созданной структуры, и получится там будет рекурсивно пропихиваться друг в друга
А если пометить их интерфейсом, чтобы они в каком-то методе возвращали названия джоб, после которой должны запускаться? Ну или в конфиге описать мапу.
источник

ЕП

Евгений Перин ⭐️... in Laravel Pro
да вот думаю как раз над вариантами, может и так. Просто то что я описал это упрощённая схема. У меня там есть моделька Pipeline которая содержит модели Task, в Task есть поле с указанием пхп класса который надо запускать и поле с аргументами, с которыми надо запускать класс. И поле sort, по которому сортируются таски внутри пайплайна, и объединяются для параллельного выполнения в батче если sort одинаковый. И помимо этого есть PipelineExecution и TaskExecution модели, это для конкретно единичного запуска пайплайна со своими тасками. И у этих запусков есть состояния, которые надо менять в зависимости от выполнения или фейла Таска и Пайплайна.
источник

T

Titov in Laravel Pro
Кто-либо делал кластеризацию точек для гуглкарт?
источник