Laravel, не задерживаются задачи в очереди, подсказите куда копать, чтобы узнать проблему?
Laravel имеет очереди, queue, который асинхронно выполняет задачи. Задачи выполняется, отлично, но теперь мне надо чтобы задачи задерживались на мс. Sleep php только на секунды.
В самом queue laravel, когда создаём объект Jobs, есть $this->release(мс*), в документации написано что она помещает в конец очереди эту задачу, с задержкой. Но она не работает. Так же не работают другие функции php asleep, set_time_limit. Никак не могу заставить задачу из очередей продолжить работу, с задержкой (задержка должна быть внутри задачи, то есть, например массив, после 2го элемента надо под сёк подождать). Ничего не работает. Делал на Windows 10 open Server, Ubuntu 22.04 Nginx, php 7.4, laravel 8. Также в хостинг все выложил, и там такая же проблема, нет задержки, у них тоже линукс. Подскажите пожалуйста, куда копать, как решить мне задачу?
Ps. Задача : есть массив, по нему проходиться и записывается в бд некоторые данные. Это делается не в контроллере, а в очереди, так как массивов много, и надо асинхронно это делать. На каждый 2 элемент массива надо на пол секунды остановиться, и потом. Продолжить.
JhaoDa, delay вызывается из контролера, а мне надо чтобы вызывалось задержка внутри задачи, то есть из Job, там объект очереди, и из метода этого объекта handler, и самым подходящим из документации, вижу что это release()
Дмитрий, https://laravel.com/docs/8.x/queues
Из этой документации делаю
php artisan make:job ProcessPodcast
И получается вот объект job
.env
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
bigzecheese, async взят из головы, такого драйвера нет вообще. Для того чтобы понимать что куда смотреть надо прочитать всю документацию. По env документации и не должно быть это файл в котом хранятся переменные окружения.