Skip to main content

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.