Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagecpp
themeEclipse
titleExemplo 1
linenumberstrue
collapsefalse
#include 'protheus.ch' 
 
User Function /*
 * uso:
 *      Para criar o servico chame:             u_start_jobs ( uma vez so )
 *      Para conectar/rodar as execucoes chame: u_conn_jobs  ( quantas vezes quiser usar o servico )
 */

Static cSEMAFORO := "MYIPC"  

/*
 * Cria o ManualJob
 */
Function u_start_jobs()
  Local cEnv := GetEnvServer()
 
  ManualJobConOut("MYIPC", "TOP"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()) + " Data atual " + cValToChar(date()) + " " + conoutcValToChar(time()) + " RJobStart -> " + "MYIPC"cSEMAFORO)
Return .T.

/*
 * Funcao que sera chamada na uso
 */
User Function u_RJobConn(cVal)
   conoutConOut("Thread tratando:    " + cValToChar(ThreadId()) + " Data atual " + cValToChar(date()) + " " + cValToChar(time()) + " RJobConn -> " + cSEMAFORO + " Parametro: "MYIPC'" + cValToChar(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 " + cValToChar(date()) + " " + conoutcValToChar(time()) + " RJobExit -> " + cSEMAFORO)
Return .T.

/*
 * Executa "MYIPC")
o ManualJob
 */
Function u_conn_jobs()
  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.

Referências

Jobs

RefreshRate

...