Flynn: controlador, planejador: corrige a restrição de duplicação de eventos de trabalho

Criado em 9 set. 2016  ·  4Comentários  ·  Fonte: flynn/flynn

Atualmente, criamos apenas um único evento por ID de trabalho e estado (veja aqui ), mas é possível que um trabalho entre em um determinado estado duas vezes.

Por exemplo, se um host for considerado não íntegro pelo agendador, todos os trabalhos nesse host serão marcados como inativos, mas se o host voltar, os trabalhos ainda podem estar em execução, portanto, os trabalhos entrarão novamente no estado de execução. As implantações subsequentes que envolvem esses trabalhos falharão porque os eventos de inatividade não serão emitidos (o evento de inatividade já existe quando o host não está íntegro).

Algumas opções:

  • elimine a restrição única (é preciso pensar se algo presume que os eventos não serão duplicados)
  • quando o programador marcar os trabalhos como inativos, apenas interrompa-os se eles aparecerem em execução novamente, pois os trabalhos de substituição já foram iniciados

@titanous @josephglanville @jvatic pensamentos?

componencontroller componenscheduler kinbug

Comentários muito úteis

Como alternativa, um estado diferente pode ser adicionado para trabalhos que foram removidos porque o host foi removido.

Todos 4 comentários

quando o planejador marcar os trabalhos como inativos, apenas interrompa-os se eles aparecerem em execução novamente, visto que os trabalhos de substituição já foram iniciados.

Acho que essa é a resposta correta.

Como alternativa, um estado diferente pode ser adicionado para trabalhos que foram removidos porque o host foi removido.

@titanous Não acho que adicionar um novo estado para jobs em hosts desconectados realmente ajude.

Quando o agendador se reconecta a um host cujos trabalhos foram marcados anteriormente como interrompidos (ou colocados em algum outro estado como unknown ), ele ainda precisa tomar uma decisão se apenas interromperá quaisquer trabalhos que ainda estejam em execução ou tente e marque-os como em execução novamente (levando a eventos up duplicados no controlador).

Acho que devemos interromper os trabalhos imediatamente após a reconexão.

Flynn não tem manutenção e nossa infraestrutura será encerrada em 1 de junho de 2021. Consulte o README para obter detalhes.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

WriteCodeEveryday picture WriteCodeEveryday  ·  5Comentários

philiplb picture philiplb  ·  4Comentários

onnimonni picture onnimonni  ·  6Comentários

onnimonni picture onnimonni  ·  3Comentários

qwyang picture qwyang  ·  3Comentários