Pular para o conteúdo principal

Pooling

No modelo de Pooling, o framework utiliza TPL Dataflow para gerenciar concorrência e orquestrar as execuções das integrações.
Esse mecanismo garante que a execução seja controlada, segura e previsível, evitando sobrecarga no sistema ou processamento duplicado.

Intervalo de Execução (Throttle)​

O intervalo definido para uma integração funciona como um throttle inteligente:

  • O contador de intervalo só começa após o término da execução anterior.
  • Isso significa que, se uma integração tem intervalo de 30 segundos, mas o processamento levou 40 segundos, a próxima execução só será disparada após finalizar o processamento anterior + 30 segundos adicionais.
  • Essa abordagem evita a inserção de jobs concorrentes na fila do Dataflow e garante que os recursos sejam utilizados de forma equilibrada.

Exclusividade por Integração​

Cada instância da classe de Pooling garante que integrações do mesmo tipo não rodem em paralelo dentro da mesma instância.
Exemplo:

  • Se a Integração A está em execução, nenhuma outra tarefa da Integração A poderá ser disparada até que o processo atual seja concluído.
  • Isso preserva a integridade do processamento e impede que dados duplicados ou inconsistentes sejam enviados para o integrador.

Benefícios do Modelo​

  • Previsibilidade: evita sobreposição de execuções da mesma integração.
  • Controle de concorrência: o Dataflow gerencia a fila e o processamento, garantindo uso eficiente de recursos.
  • Robustez: reduz riscos de inconsistência, principalmente em cenários de sistemas que não suportam chamadas simultâneas.

Em resumo, o Pooling no framework foi projetado para oferecer confiabilidade e estabilidade, respeitando os intervalos de execução e controlando o paralelismo de forma granular.