Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
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()
Sintaxe: New(cSemaphore, nTimeOut) - > Return Descrição: Método construtor da classe Parâmetros:
|
SetThreads()
Sintaxe: SetThreads(nThreads)->Return Descrição: Inicializa o numero de threads para execução da fila Parâmetros:
|
SetEnvironment()
Sintaxe: Descrição: Inicializa as variáveis para montagem do ambiente Parâmetros:
|
SetNoErrorStop()
Sintaxe: SetNoErrorStop(lNoStop) - >Return INoStop Descrição: Especifica se o sistema deve parar em caso de erro Parâmetros:
Return: |
AddThread()
Sintaxe: AddThread()->Return Descrição: Adiciona threads para fazer a execução |
RemoveThread()
Sintaxe: RemoveThread(lAll)->Return Descrição: Remove threads de execução Parâmetros:
|
Start()
Sintaxe: Start(cFunction)->Return Descrição: Inicializa a execução da fila Parâmetros:
|
Stop()
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()
Sintaxe: HasThreadFree()->Return(lRetorno) Descrição: Indica se há threads de processamento livres para execução |
Go()
Sintaxe: Go( uParm1, uParm2, uParm3, uParm4, uParm5, uParm6, uParm7, uParm8, uParm9, uParm10 )->Return(lRetorno) Descrição: Envia uma requisição para uma thread agent, onde será processado uma lista de até 10 parametro de acordo com a função informada no método Start Parâmetros:
|
GetError()
Sintaxe: GetError()->Return(::cError) Descrição: Recupera o erro ocorrido em uma das threads de processamento |
GetMonitorStatus()
Sintaxe: GetMonitorStatus()->Return(PadR(::oSemaphore:DirtyRead(::cMonitorID),THREAD_LENGHT_STATUS)) Descrição: Recupera o status do Monitor |
FreeThreads()
Sintaxe: FreeThreads()->Return(nRet) Descrição: Devolve a quantidade de threads de processamento livres para execução |
StopProcessOnError()
Sintaxe: SetNoErrorStop(lNoStop)->Return lStop Descrição: Especifica se o ipc deve ou não parar em caso de erro |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#Include#include "protheus.ch" //------------------------------------------------------------------- /*/{Protheus.doc} IPCTeste -- /*/{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 := Nilas object Local nX as := 0 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 Function IPCTESTE2(nx) 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 IPCTEST2(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 | ||||
---|---|---|---|---|
|