Usando touched_job em várias máquinas com algumas tarefas que precisam ser executadas localmente

StackOverflow https://stackoverflow.com/questions/1375966

  •  21-09-2019
  •  | 
  •  

Pergunta

Estou tentando usar o App de várias partes de um aplicativo Rails. O problema é que, se tivermos várias instâncias do aplicativo em execução, mas certos trabalhos (o processamento de uploads, por exemplo) precisam ser executados por trabalhadores locais, enquanto outros podem se beneficiar por serem administrados por qualquer trabalhador.

Alguém tem alguma recomendação para uma boa abordagem para ter tipos de emprego locais/não locais?

Foi útil?

Solução

Acabei de ler "Processamento de fundo com touched_job" em A última edição da revista Rails E me ocorreu que você poderia abusar do sistema de prioridade de trabalho interno.

Você pode especificar uma prioridade mínima e máxima para seus trabalhadores. Agora, se seus trabalhos especiais somente local tiverem uma prioridade de 42, este trabalhador processará apenas esses trabalhos ...

rake jobs:work RAILS_ENV=production MIN_PRIORITY=42 MAX_PRIORITY=42

Enquanto este trabalhador processará tudo, exceto aqueles trabalhos especiais apenas para locais:

rake jobs:work RAILS_ENV=production MIN_PRIORITY=0 MAX_PRIORITY=10

Isso deve ser flexível o suficiente para alcançar o que você precisa. No entanto, admito livremente que só aprendi sobre esse recurso hoje e não experimentei -o tão YMMV!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top