Histórico da Página
Pagetitle | ||||
---|---|---|---|---|
|
Page Tree | ||
---|---|---|
|
Objetivo
Reduzir o tempo de processamento e também o consumo de memória no TotvsAppServer para rotinas que envolvam quaisquer uma das situações a seguir:
- Grande volume de dados que possam ser processados em lotes de forma paralela
- Múltiplas rotinas que possam ser executadas de forma paralela
...
Funcionamento e Vantagens
O uso das funções POOL JOBS é semelhante ao uso do componente LTHREAD, onde a aplicação controla a quantidade máxima de THREADS executadas de forma paralela e em modo JOB (sem interface), no entanto ela tem as seguintes diferenças:
Ações | Componente LThread | Funções POOL JOBS |
---|---|---|
Executar múltiplas Threads paralelas | SIM | SIM |
Distribuir a execução de threads em múltiplos Appservers | NÃO | SIM |
Executar funções distintas para um mesmo pool de Threads | NÃO | SIM |
Executar mais de um grupo de threads para processamentos distintos | NÃO | SIM |
Controlar a quantidade de execuções paralelas de uma mesma função no POOL | NÃO | SIM |
Identificar se uma determinada função está em andamento no grupo de threads Jobs | NÃO | SIM |
Controle da quantidade de execuções paralelas na mesma base de dados | NÃO | SIM |
...
Exemplo:
logix.pooljobs.servers.wvd9900=192.168.99.1:7091,192.168.99.1:7092
...
Dica |
---|
A distribuição dos processos em modo JOB durante a execução é totalmente controlada via base de dados, utilizando |
...
dados registrados na tabela LOG_DADOS_SESSAO_LOGIX, pois desta forma não importa em qual |
...
AppServer esteja |
...
realizando a execução ou quais usuários estejam executando a rotina, |
...
ou seja, a execução pode estar sendo |
...
executada por |
...
N processos/usuários |
...
e será capaz de identificar se determinado processo JOB previsto no pool (processos executados) |
...
está em andamento ou não na base de dados. |
...
2) DESENVOLVIMENTO NO FONTE .4GL:
DEFINE m_pooljob_name CHAR(30)
LET m_pooljob_name = "logix_pool"
IF _ADVPL_PoolJobs_getCountProcess(m_pooljob_name) > 0 THEN
CALL LOG_Message("POOL JOBS","ERROR","Este processo já está em andamento.")
RETURN
END IF
...
Abrangência
Informações |
---|
Esta funcionalidade está disponível a partir do Logix 12.1.26. |