количества джоб в chain, некоторые из них все равно валяются по тайм-ауту из-за того что долго находятся в состояние ожидания на исполнение?
Эх вот на это бы кто ответил)
Да. В джобах надо тайм-аут убирать т.к. он считается с момента создания джобы.
Но это же в тот же момент время исполнения? Разве чейн не сделан для того что бы они исполнялись последовательно?
На счёт последовательности не знаю, не работал с чейном, но тайм-аут начинает действовать с момента dispatch job
Ну вот в том и прикол, есть например пакет ларавел ексель, он умеет обрабатывать документ в чейне, и там нету такой проблемы Обработка чанков идет друг за другом
Тут уже не подскажу. С чейнами джоб ни разу не приходилось сталкиваться. Не было необходимости.
Я после того как столкнулся, понял что не правильно понимал механизм работы джоб в Ларе, мне нужно в 5 процессов распараллелить обработку 400к строк и что бы это все исполнялось друг за другом, не так уж и просто как оказалось…
Если я правильно понимаю, чейн не последовательно выполняет джобы, а параллельно, при этом он ожидает когда они все закончат обработку. Если запустить 5 джоб на очереди, обработкой которой занимаются, например, 10 воркеров, то эти 5 джоб выполнятся параллельно на пяти воркерах. Если нужно именно последовательно, то я бы сделал костыль: ProcessBatchJob::dispatch() - общая джоба для процессов, внутри которой: ProcessJob::dispatchSync(1) ProcessJob::dispatchSync(2) ...
Главный вопрос: зачем распараллеливать, если выполнить нужно друг за другом? Это противоречит параллельности джоб
это ты описал batch - пакетную обработку. chain - как раз последовательно.
че там за ошибка
Понял. В доке всё выглядит просто.
последовательно что бы не ловить таймауты, параллетить что бы быстрее процесс шел
последовательно что бы не ловить таймауты чет у тебя не то
@psytrgles вот начало
да, я читал еще тогда
Обсуждают сегодня