Histórico da Página
...
Bloco de código | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
#include 'protheus.ch' User Function start_jobs() ManualJob("MYIPC", "TOP", /* * uso: * Para criar o servico chame: u_startIPC ( uma vez so ) * Para conectar/rodar as execucoes chame: u_connIPC ( quantas vezes quiser usar o servico ) */ Static cSEMAFORO := "MYIPC" /* * Cria o ManualJob */ Function u_startIPC() Local cEnv := GetEnvServer() ConOut("Thread: " + cValToChar(ThreadId()) + " ManualJob: " + cSEMAFORO) ManualJob(cSEMAFORO, cEnv, "IPC", "u_RJobStart", "u_RJobConn", "u_RJobExit", "", 1000, 12, 155, 21, 31) Return .T. /* * Funcao que sera chamada na ativacao de cada thread do Job */ User Function u_RJobStart() ConOut("Thread iniciando: " + cValToChar(ThreadId()) + conout" Data atual " + cValToChar(date()) + " " + cValToChar(time()) + " RJobStart" + ProcName() + " -> " + "MYIPC"cSEMAFORO) Return .T. /* * Funcao que sera chamada a cada uso */ User Function u_RJobConn(cVal) ConOut("Thread conouttratando: " + cValToChar(ThreadId()) + " Data atual " + cValToChar(date()) + " " + cValToChar(time()) + " " RJobConn+ ProcName() + " -> " + cSEMAFORO + " Parametro: '" + "MYIPCcValToChar(cVal) + "'") Return .T. /* * Funcao que sera chamada na finalizacao de cada thread do Job */ User Function u_RJobExit() ConOut("Thread finalizando: " + cValToChar(ThreadId()) + " Data atual conout" + cValToChar(date()) + " " + cValToChar(time()) + " RJobExit " + ProcName() + " -> " + cSEMAFORO) Return .T. /* * Executa o ManualJob * Obs. IPCGo - pode ser invodado de qualquer programa, desde que passe o mesmo nome de semaforo (cSEMAFORO)("MYIPC") */ Function u_connIPC() Local cPar := "Thread chamando: " + cValToChar(ThreadId()) + " Data atual " + cValToChar(date()) + " " + cValToChar(time()) Local lRet := .F. /* * Executa o ManualJob, podendo passar parametros */ ConOut("Estou passando o servico: '" + cPar + "'") lRet := IPCGo(cSEMAFORO, cPar) ConOut("Estou passou o servico: '" + cPar + "' " + " retorno: " + cValToChar(lRet) + IIf(lRet, " passado com sucesso", " nao conseguiu passar")) Return .T. |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/*
* uso:
* Para criar o servico chame: u_start_oc ( sera executado somente a funcao de "connect" uma vez para cada thread minima na ativacao )
*/
Static cRunOnce := "RunOnceJob"
/*
* Cria o ManualJob
*/
Function u_start_oc()
Local cEnv := GetEnvServer()
ConOut("Thread: " + cValToChar(ThreadId()) + " ManualJob: " + cRunOnce)
ManualJob(cRunOnce, cEnv, "", "", "u_ConnOne", "", "", 1000, 3, 5, 1, 1)
Return .T.
/*
* Funcao que sera chamada uma vez
*/
Function u_ConnOne()
ConOut("Thread executando: " + cValToChar(ThreadId()) + " Data atual " + cValToChar(date()) + " " + cValToChar(time()) + " " + ProcName() + " -> " + cRunOnce)
Return .T.
|
Referências
Abrangência
TOTVS Application Server a partir do release 7.00131227A
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas