Executa uma rotina em uma nova thread sem interface. Consiste em inserir o Job em uma fila e somente libera a execução caso existam recursos de CPU e memória confortáveis para executar essa nova thread, diferentemente do StartJob.
Configuração via ini (opcional)
[SMARTJOB] |
Utilizando a seção SMARTJOB, é possível configurar a carga máxima de memória da máquina (memload) confortável para se executar um novo job da fila, o número mínimo (minjobs) e máximo (maxjobs) de threads físicas para atender a fila de jobs.
No exemplo acima, foram empregados os valores de 75% de memória física, 2 threads no mínimo e 10 threads no máximo.
Quando não configurados, os valores default são, respectivamente, 60, 2 e 16.
Sintaxe
|
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cEnv | caractere | Indica o nome do ambiente em que o Job será executado. | X | |
cName | caractere | Indica o nome do Job que será executado. | X | |
lWait | lógico | Parâmetro de compatibilidade, obrigatório, porém inócuo. Internamente, ele será sempre igual a falso (.F.), ou seja, não espera. | X | |
parm1,parm2,...parm25 | qualquer | Os parâmetros (máximo 25 parâmetros) informados a partir deste ponto serão repassados para a função especificada no parâmetro cName. Caso informados parâmetros do tipo B (Code-Block) ou O (Object), no processo de destino receberá NIL. |
Retorno
Nome | Tipo | Descrição |
---|---|---|
Ret | qualquer | Retorna .T. se o SmartJob entrou na fila de processamento ou retorna .F. se houve algum problema de parâmetros ou de entrada na fila. |
Exemplos
user function testSmartJob() local lRet := .F. as logical lRet := SmartJob("u_inijob",getEnvServer(),.F.,"Data Atual " + cValToChar(date())) if (lRet == .F.) return -1 endif return 0 user function inijob(cTxt) conout(cTxt) return .T.
Notas Importantes
|
Abrangência
TOTVS Application Server 17.3.0 ou superior