Моя цель — планировать и выполнять задачу каждый день в полночь. Я уже использую Beanstalkd в своем приложении для других целей планирования. Но работать каждый день в определенное время кажется немного сложным.
Я планирую работу на 00:00 каждый день в моем global.php
файл:
Queue::later($secondsBeforeMidNight, $jobToFire, array('data' => $data));
Тем не менее, в Laravel заложено то, что он загружает все приложение при каждом получении запроса. Это означает, что вышеуказанная задача будет планироваться каждый раз при поступлении нового запроса. Это приведет к созданию множества рабочих мест, ожидающих выполнения в полночь.
Есть ли способ решить эту проблему?
Вы должны использовать cron
для этого — не Beanstalkd.
Для Laravel 4 лучшим вариантом является использование пакета Dispatcher: https://github.com/Indatus/dispatcher
Это позволит вам запланировать выполнение определенных команд ремесленников в разное время.
Других решений пока нет …