Запустите Laravel Schedule с задержкой - PullRequest
2 голосов
/ 10 октября 2019

У меня есть много заданий Laravel, которые запускаются EveryMinute,

Но я не хочу, чтобы все они выполнялись одновременно,

Возможно ли сделать некоторые из нихзапустить everyMinute, но с задержкой в ​​1-2 секунды?

Что-то вроде этого:

Job 1 > Every Minute at 00 seconds
Job 2 > Every minute at 05 seconds
Job 3 > Every minute at 10 seconds

Для отдельных заданий cron я делаю это следующим образом: * * * * * ( sleep 30 ; /path/to/executable)

Но я надеваюне знаю, как это сделать с помощью Laravel Schedules

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Я думаю, что самый простой способ заставить его использовать функцию php sleep() в вашей Команде в первой строке handle() метода.

0 голосов
/ 10 октября 2019

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

И, как вы видите, у заданий laravel есть то же время, что и у серверных заданий cron, что и * * * * *, то есть все дни каждые минуты.

Итак, мне удалось это сделать с помощью пользовательской команды:

php artisan make:command

И в своей пользовательской команде я проверил, если что-то происходит, то моя работа запускается ...

Вы также можете сделать работу на другой работе, которая, в зависимости от родительской работы, будет выполняться или нет.

...