Jobs no AppServer
StartJob(cName,cEnv,lWait,[parm1..parm25])Executa uma rotina em thread separada, com retorno controlado.
Visão geral
StartJob recebe função, ambiente e lWait: verdadeiro aguarda e devolve o retorno do worker; falso retorna NIL sem confirmar o resultado do processamento. Até 25 argumentos adicionais são permitidos; objetos e blocos chegam como NIL ao destino. O exemplo executável proposto só multiplica um número e não requer tabelas. O modelo comunitário consultado aborda RpcSetEnv, semáforos e logs, mas suas credenciais ilustrativas, gravações e callbacks não são reproduzidos. (Fontes: refs. 1–2.)
Sintaxe
StartJob(cName,cEnv,lWait,[parm1..parm25])Exemplo comentado
#Include "Protheus.ch"
User Function Ed499()
Local uResult
// Worker puro: nenhuma interface ou tabela.
uResult := StartJob("U_Ed499W",GetEnvServer(),.T.,3)
ConOut(cValToChar(uResult))
Return Nil
User Function Ed499W(nValue)
Return nValue * 2Com lWait verdadeiro, o worker devolve 6 para entrada 3. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Preparar empresa/filial quando o worker precisar de dados, liberar apenas o ambiente que ele abriu e definir concorrência, cancelamento e idempotência.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.