Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Informações | ||
---|---|---|
| ||
A classe gerência a abertura de threads de forma dinâmica, ajustando-se conforme a demanda de utilização. Isso significa que o consumo de memória e processamento no AppServer será proporcional à quantidade de threads ativas no momento. Sendo assim o consumo de licenças também pode ser impactado. |
Informações | ||
---|---|---|
| ||
Classe disponível para utilização na lib 20241007 ou superior. |
Descrição:
A classe FWIPCWait coordena o processamento entre threads, criando instâncias automaticamente que se iniciam de acordo com a disponibilidade dos servidores.
New()
Descrição: Método construtor da classe. Sintaxe: New(cSemaphore, nTimeOut) |
- > Return |
Método construtor da classe
Parâmetros:
|
SetThreads()
|
SetThreads(
nThreads)
->ReturnDescrição: Inicializa o |
número de threads para execução da fila. Sintaxe: SetThreads(nThreads)->Return Parâmetros:
|
SetEnvironment()
Sintaxe:Descrição: Inicializa as variáveis para montagem do ambiente. Sintaxe: SetEnvironment( cEnvironment ) -> Return Nil Parâmetros:
|
SetNoErrorStop()
Retorno: Não retorna valores explícitos. |
SetNoErrorStop(
lNoStop)
→Return INoStopDescrição: Especifica se o sistema deve parar em caso de erro. Sintaxe: SetNoErrorStop(lNoStop) - >Return INoStop Parâmetros:
|
|
AddThread()
Retorno: Retorna indica se o sistema para ou continua. |
AddThread()
->ReturnDescrição: Adiciona threads para fazer a execução. |
RemoveThread()
Sintaxe: |
AddThread( |
) - >Return |
RemoveThread()
Descrição: Remove threads de execução. Sintaxe: RemoveThread(lAll) - >Return Parâmetros:
|
Start()
Sintaxe:
Start(cFunction)->Return
Descrição: Inicializa a execução da fila. Sintaxe: Start(cFunction)→Return Parâmetros:
|
Stop()
Sintaxe:
Retorno: Não possui retorno explícito. |
Stop(
Stop()->Return(lRetorno)
Descrição: Para a execução das threads de IPC e a de monitoramento. |
Sintaxe: FWIpcWait():Stop() → lRetorno |
Retorno: |
lRetorno → Logica, Indica sucesso na parada as threads da FWIpcWait. |
HasThreadFree()
Descrição: Indica se há threads de processamento livres para execução. |
Go()
Sintaxe: |
HasThreadFree()->Return(lRetorno) Retorno: Retorna .T. se houver threads livres, caso contrário retorna .F. |
Go()
Descrição: Envia uma requisição para uma thread agent, onde será processado uma lista de até 10 |
parâmetro de acordo com a função informada no método Start. Sintaxe: Go( uParm1, uParm2, uParm3, uParm4, uParm5, uParm6, uParm7, uParm8, uParm9, uParm10 )->Return(lRetorno) Parâmetros:
|
|
|
|
|
|
|
|
Retorno: Retorna .T. se a requisição foi feita com sucesso, caso não foi retorna .F. |
GetError()
Descrição: Recupera o erro ocorrido em uma das threads de processamento Sintaxe: GetError()->Return(::cError) |
Retorno: |
Descreve o tipo de erro ocorrido |
ou vazio caso não houver. |
GetMonitorStatus()
Descrição: Recupera o status do Monitor Sintaxe: GetMonitorStatus() |
→Return(PadR(::oSemaphore:DirtyRead(::cMonitorID),THREAD_LENGHT_STATUS)) |
Retorno: |
Status atual em formato de sting. |
FreeThreads()
Descrição: Devolve a quantidade de threads de processamento livres para execução Sintaxe: FreeThreads()->Return(nRet) |
Retorno: |
Retorna a quantidade de threads |
livres |
StopProcessOnError()
Descrição: Especifica se o IPC deve ou não parar em caso de erro. Sintaxe: SetNoErrorStop(lNoStop)->Return lStop Parâmetros:
|
Descrição:
Especifica se o ipc deve ou
Retorno: Define o comportamento para continuar retorna .T. e para finalizar retorna .F. |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
User Function IPCTeste() Local oIPC := Nil Local nX := 0 #INCLUDE "protheus.ch" #INCLUDE "parmtype.ch" #Include "fwipcwait.ch" //--------------------------------------------------------------------- /*/{Protheus.doc} IPCTeste Função para exemplo de uso da classe FWIPCWait @author FRAMEWORK @since 11/09/2024 @version 1.0 /*/ //--------------------------------------------------------------------- User Function IPCTeste() Local oIPC as object Local nX as numeric RpcSetEnv("99","01") oIPC := FWIPCWait():New("TESTE",10000) oIPC:SetThreads(1) oIPC:SetEnvironment(cEmpAnt,cFilAnt) oIPC:Start("IPCTESTE2U_IPCTEST2") For nX := 1 To 1000 oIPC:Go(nX) Next nX oIPC:Stop() FreeObj(oIPC) oIPC := Nil Return //--------------------------------------------------------------------- /*/{Protheus.doc} IPCTEST2 Função que será executada nas threads de exemplo da FWIpcWait @author FRAMEWORK @since 11/09/2024 @version 1.0 /*/ //--------------------------------------------------------------------- User Function IPCTESTE2(nxIPCTEST2(nX as numeric) ConOut("Entrei...",nx nX, Time()) Sleep(2000) ConOut("Saindo...",nx nX, Time()) Return |
Templatedocumentos
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |
- Métodos:
Índice | ||||
---|---|---|---|---|
|