Páginas filhas
  • Classe FWIPCWait

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:

NomeTipoDescrição

cSemaphore

character

identificar a fila de processamento

nTimeOut

Number

Indica o tempo de time-out em milissegundos





SetThreads()

Sintaxe:

SetThreads(nThreads)->Return

Descrição:

Inicializa o numero de threads para execução da fila

Parâmetros:

NomeTipoDescrição

nThreads

Number

Indica o numero de threads





SetEnvironment()

Sintaxe:

Descrição:

Inicializa as variáveis para montagem do ambiente

Parâmetros:

NomeTipoDescrição

cEmp

character

Indica qual a empresa será inicializadas

cFil

character

Indica qual a filial será inicializadas





SetNoErrorStop()

Sintaxe:

SetNoErrorStop(lNoStop)→Return INoStop

Descrição:

Especifica se o sistema deve parar em caso de erro

Parâmetros:

NomeTipoDescrição

lNoStop

Boolean

Indica se o IPC deve parar em caso de erro .F. deve parar   .T. não deve parar





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:

NomeTipoDescrição
lAllBoolean

Força remover todas as threads de execução






Start()

Sintaxe:

Start(cFunction)->Return

Descrição:

Inicializa a execução da fila

Parâmetros:

NomeTipoDescrição
cFunctionCharacter

Função inicia as  threads de execução.









Stop()

Sintaxe:

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()

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:

NomeTipoDescrição
uParm1

Indefinido


uParm1

Indefinido


uParm1

Indefinido


uParm1

Indefinido


uParm1

Indefinido


uParm1

Indefinido


uParm1

Indefinido


uParm1

Indefinido


uParm1

Indefinido


lRetorno

Boolean

Indica que a requisição não foi feita



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
languagejs
themeMidnight
titleExemplo
User Function IPCTeste()

Local oIPC      := Nilas object
Local nX        := 0as object

RpcSetEnv("99","01")

oIPC := FWIPCWait():New("TESTE",10000)
oIPC:SetThreads(1)
oIPC:SetEnvironment(cEmpAnt,cFilAnt)
oIPC:Start("IPCTESTE2")
For nX := 1 To 1000
	oIPC:Go(nX)
Next nX
oIPC:Stop()
oIPC := Nil

return

Function IPCTESTE2(nx)

ConOut("Entrei...",nx,Time())
Sleep(2000)
ConOut("Saindo...",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
maxLevel15
printablefalse