Как удалить неактуальные задачи из очереди в Laravel?
Добрый день!
Задача:
На сайте создается событие, запланированное на определенное время. За некоторое время до его начала, должны произойти определенные задачи: отправиться уведомления, приглашения и т.д.
На данный момент, при создании события, все задачи, которые должны отработать до его начала, я пушу в очередь с соответствующей задержкой. (в качестве драйвера для очередей использую базу данных)
Проблемы:
1) Если событие удаляется, то задачи в очереди относительно этого события уже неактуальны. Не нашел в интерфейсе по работе с очередями в Laravel, как можно (и можно/нужно ли?) очищать очередь задач.
2) Если изменяется время начала события, необходимо запланировать новые задачи в очередь, в соответствии с актуальным временем начала события (потому что, допустим, уведомление должно падать пользователю строго за час до начала события). Но при этом в очереди хранятся старые задачи относительно этого события, опять же, как их выпилить из очереди?
Пожалуйста, кто сталкивался с подобной задачей, подскажите, как разрешить ее правильно? Как избавляться от неактуальных задач в очереди в Laravel?
Да, но проблема в том, что проверить наличие события и соотв. актуальность выполнения задачи при ее выполнении я могу. Но что делать в случаях, когда у меня задача была добавлена в очередь и запланирована на 12:00, потом изменилось время начала события и в очередь добавилась новая (актуальная) задача на 13:00. Во время выполнения задачи, которая запланирована на 12:00, я не могу проверить ее актуальность (проверить наличие других таких же задач в очереди, но запланированных на другое время), т.к. интерфейс по работе с очередями в laravel такого не предполагает и тут видимо должна быть другая логика по работе с ними.
В контексте данного вопроса "задача" и "команда" - разные вещи. Ок, понял, спасибо за совет.
(очереди "из коробки" поддерживают много другого полезного функционала, поэтому до последнего хотелось решить вопрос с их помощью, но видимо да, они тут не к месту).