Laravel Очередь - как запустить очередь без использования cronjob - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу использовать задание очереди для обновления данных по времени создания базы данных

Пример. у меня есть таблица job_history

Я вставлю несколько записей в таблицу job_history по состоянию (статус = 0 не окончен sh)

Я хочу обработать все записи со статусом = 0 по очереди (время создать по возрастанию)

(это означает, что после обработки записи 1 выполнено (обновление записи с состоянием = 1 завершено или тайм-аут на 60 с), затем автоматически рядом с записью 2,3 ... до конца ( обновить статус = 1)

И когда я создаю новую запись в таблице job_history, очередь всегда слушает обработчик продолжения со статусом = 0

=> Я могу обработать cronjob (но cron задание настраивается не реже одного раза в минуту => Это прерывает работу), я хочу обработать, если запись 1 завершена, будет продолжаться 2 (без ожидания cronjob 1 минуту)

Я не знаю laravel очередь может сделать эту работу нет? и как его настроить?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

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

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

0 голосов
/ 28 апреля 2020

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

Вы можете прочитать это, сделав c: https://laravel.com/docs/7.x/queues#supervisor -конфигурация

...