A partir das versões 12.1.2410.258, 12.1.2502.161, 12.1.2506.160, foi disponibilizado o fracionamento de jobs inteligente para Geração de Lançamentos em Lote.
Com o parâmetro de "Fracionamento de Jobs Inteligente" ativo: O Fracionamento Inteligente é acionado durante a Geração de Lançamentos em Lote quando existe mais de um job de Geração de Lançamento em execução (Geração de lançamento em paralelo de mesma coligada). Um cálculo com o número de frações é efetuado permitindo que os jobs sejam finalizados em menor tempo.
O fracionamento de jobs inteligente, está programado para funcionamento apenas em ambiente que tenha suporte a execução com mais de 20 jobs em paralelo. |
Segue um exemplo do funcionamento (Tal exemplo foi executado em um ambiente preparado para benchmark):
Em um ambiente com suporte a 160 jobs em paralelo, configurado para geração de lançamentos com 30 jobs, foram enviadas requisições em paralelo de níveis de ensino e filiais diferentes dentro da mesma coligada. Todas requisições foram programadas para executar as 10:40, abaixo segue uma tabela com os dados das requisições e tempo do processo.
No total foram enviados 185 mil parcelas para geração de lançamento não contábil e sem baixa automática com o total de 150 frações, o tempo total de execução foi de 2h18min, conforme tabela abaixo:
| Geração de lançamentos com concorrência | |||||||
| Quantidade Lançamentos | Número de Jobs | Código Coligada | Classe do Processo | Status | Iniciado Em | Finalizado Em | Tempo de execução |
| 5.000 | 30 | 5 | EduGeraLancSliceableData | OK | 28/05/2025 10:40:03 | 28/05/2025 11:05:01 | 0:24 |
| 10.200 | 30 | 5 | EduGeraLancSliceableData | OK | 28/05/2025 10:40:02 | 28/05/2025 11:30:55 | 0:50 |
| 20.000 | 30 | 5 | EduGeraLancSliceableData | OK | 28/05/2025 10:40:03 | 28/05/2025 11:39:22 | 0:59 |
| 50.000 | 30 | 5 | EduGeraLancSliceableData | OK | 28/05/2025 10:40:01 | 28/05/2025 12:20:11 | 1:40 |
| 100.000 | 30 | 5 | EduGeraLancSliceableData | OK | 28/05/2025 10:40:01 | 28/05/2025 12:58:59 | 2:18 |
O mesmo processamento utilizando o fracionamento de jobs inteligente teve grande diferença de tempo. O fracionamento inteligente fez o cálculo da melhor quantidade de frações por quantidade de lançamentos, com a criação de menos frações na fila de execução.
Os mesmos 185 mil lançamentos em paralelo foram executados em 25min usando 132 frações, conforme tabela abaixo:
| Geração de lançamentos com concorrência | |||||||
| Quantidade Lançamentos | Número de Jobs | Código Coligada | Classe do Processo | Status | Iniciado Em | Finalizado Em | Tempo de execução |
| 5.094 | 8 | 5 | EduGeraLancSliceableData | OK | 09/06/2025 10:30:01 | 09/06/2025 10:39:23 | 0:09 |
| 10.194 | 13 | 5 | EduGeraLancSliceableData | OK | 09/06/2025 10:30:01 | 09/06/2025 10:41:40 | 0:11 |
| 20.394 | 21 | 5 | EduGeraLancSliceableData | OK | 09/06/2025 10:30:02 | 09/06/2025 10:44:12 | 0:14 |
| 50.010 | 40 | 5 | EduGeraLancSliceableData | OK | 09/06/2025 10:30:02 | 09/06/2025 10:46:57 | 0:16 |
| 101.994 | 50 | 5 | EduGeraLancSliceableData | OK | 09/06/2025 10:30:01 | 09/06/2025 10:55:43 | 0:25 |
Concluímos que o fracionamento de jobs inteligente calcula a melhor proporção de "quantidade de lançamentos/frações" gerando menos itens na fila, o que diminui o tempo de execução do processo total para cada solicitação.
Como visto nos exemplo, os processos foram executados em paralelo, no cenário 1 as execuções foram agendadas no dia 28/05/2025 as 10:40 e no cenário 2 os agendamentos foram no dia 09/06/2025 as 10:30.
No cenário 1 foram enviadas no total 150 frações sendo que algumas tiveram que ficar na fila esperando frações com maior quantidade, sem necessidade.
Ao ajustar o número de frações de forma proporcional a quantidade de lançamentos, nos últimos testes, com valores calculados foi possível executar os 185 mil lançamentos em 25 minutos.

Ao marcar o parâmetro de "Geração de lançamentos com fracionamento de jobs inteligente", um alerta informando os limites relacionados a quantidade mínima de geração de 20 lançamentos em paralelo é exibido:

Com o parâmetro marcado, ao executar o processo de "Geração de Lançamentos em Lote":
A quantidade de itens informada para fracionamento pode ser desconsiderada e o fracionamento calcular uma nova quantidade.
Ao clicar no botão executar, um alerta é exibido informando que a quantidade de jobs solicitada pode ser alterada:
(O Fracionamento de Jobs Inteligente será acionado apenas se já existirem outras solicitações de geração de lançamento sendo executadas)
