No meu projeto Laravel, tenho de 5 a 6 filas diferentes. Cada fila aciona a próxima em uma ordem estrita, formando uma cadeia de processamento como:
Tarefa1 → Tarefa2 → Tarefa3 → Tarefa4 → Tarefa5
O fluxo é sempre acionado por uma solicitação externa que começa com Job1. Cada job executa uma operação de arquivo (criação/modificação de arquivos), e esses arquivos são armazenados localmente no servidor onde o job é executado.
O problema surge quando tento escalar horizontalmente adicionando mais servidores para lidar com as filas. Como as filas do Laravel são distribuídas, não há garantia de que o Job2 será processado pelo mesmo servidor que lidou com o Job1 — o que interrompe o fluxo, pois o Job2 precisa acessar o arquivo local criado pelo Job1.
O que eu preciso : quero garantir que, quando o Job1 começar em um servidor específico, toda a cadeia de jobs (Job2 a Job5) continue no mesmo servidor — mesmo em uma configuração de vários servidores.
O que tentei : anexar uma "ID de máquina" à carga útil do trabalho — mas isso não ajuda a garantir que o trabalho será executado pela mesma máquina.
Pesquisei on-line por "trabalhos fixos" ou "fixar trabalhos no mesmo trabalhador/servidor" — mas não consegui encontrar uma solução limpa ou oficial.
Minha pergunta : Alguém já lidou com um requisito semelhante antes? Existe uma maneira comprovada de fixar cadeias de tarefas no mesmo servidor no Laravel ao executar um sistema de filas distribuídas?