Size: a a a

2021 April 26

S

Sergo in Laravel Pro
что значит теряет их?
источник

A

Alexcc in Laravel Pro
так ладно где эти сущности в бд?
источник

SS

Serg Serdyuk in Laravel Pro
А withoutOverlapping не подойдет ли?
источник

А

Александр in Laravel Pro
Просто теряет и не списывает оплату и всё. Проблема в том что на эту ежеминуту повешены 5 различных задач перебирающие кучу сущностей из БД.
источник

А

Александр in Laravel Pro
withoutOverlapping() не совсем подходит, так как он оттягивает время и можно не уложится в жесткие временные рамки.
источник

А

Александр in Laravel Pro
Да в БД
источник

A

Alexcc in Laravel Pro
а выборка происходит по условиям или кусками?
источник

А

Александр in Laravel Pro
По условиям, без кусков. Проблема что вся логика сейчас описана в цикле без всяких очередей и т.д. и порой перебрать все сущности даже их 500 скрипт не успевает
источник

A

Alexcc in Laravel Pro
может через курсор попробуйте?
источник

A

Alexcc in Laravel Pro
курсов быстрее вроде в разы
источник

А

Александр in Laravel Pro
Честно не знаком с данным инструментом, почитаю про него.
источник

А

Александр in Laravel Pro
Вообще хотел узнать как в указанное время устанавливать определенное количество задач. Смотрел в сторону https://laravel.com/docs/8.x/queues#delayed-dispatching, но не пойму что правильнее передавать коллекцию сущностей в работу и обрабатывать там, или же всё таки в цикле передавать в метод dispatch() по одной сущности?
источник

A

Alexcc in Laravel Pro
chunk (много памяти жрет) cursor (мало помяти но прикол с произодительностью точнее каждое перемещение свой запрос)
источник

A

Alexcc in Laravel Pro
берете chunk скажим по 1к
источник

A

Alexcc in Laravel Pro
или с бд проблем нету и вы можете 10к держать сразу в оперативке?
источник

A

Alexcc in Laravel Pro
для решения вашей задачи надо знать какие ограничения в оперативке
источник

A

Alexcc in Laravel Pro
очередь можно переписать так что ей пачками по 500 допустим давать обьектов и они сами уже разруливают
источник

A

Alexcc in Laravel Pro
т.с chunk сделали взяли 500 завернули пошли за следущими и таким образом можно уложится
источник

А

Александр in Laravel Pro
В принципе проблем нет. Но не пойму при чём тут chunk в данном случае) в метод dispatch( collection || Model ??) с вызовом ->delay(now()->addHour()) лучше передать коллекцию и в работе перебрать коллекцию для постановки в очередь на обработку, или передавать по одной сущности и ставить в очередь на обработку? Смысл избежать вызова скрипта по крон так как минута уже не справляется с выполнением...
источник

A

Alexcc in Laravel Pro
я говорю если передавать в очередь то кусками то есть по 500 по 1000 объектов в  колекция, по 1 это долго да и зачем. За счет маштабирования вы сможете выполнять сразу несколько задач паралельно
источник