Как запускать только одну задачу в очереди laravel?

Есть сервис SAAS в котором есть модель Users, она имеет связь с моделью Accounts.
Для каждого Accounts генерируются задачи и ставятся в очередь, некоторые задачи, цепочки задач. По завершении генерируют еще задачи для этого же аккаунта.

Работает это все на Horizon + redis.

Документацию читал, насколько я понял это можно сделать с использованием Redis::funnel('key') - но такой вариант предполагает что воркер будет постоянно брать задачу, обламываться - возвращать задачу и так по кругу, а задач очень много. Таймаутами разруливать тоже не удобно - задачи должны выполняться одна за другой тутже.

1 воркер 1 очередь тоже так себе вариант - как быть с тем что юзеров 10000 - соответственно и очередей столькоже.

Как организовать очередь что бы параллельно могли запускаться задачи для разных аккаунтов, но только 1 задача для одного аккаунта.
  • Вопрос задан
  • 321 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы