FwLock

Lock distribuido (cross-AppServer) baseado em banco. Garante que um trecho de codigo so execute por um node por vez. Essencial em cluster.

Assinatura: oLock := FwLock():New(cChave) / :acquire(timeoutMs) / :release()

Retorna: FwLock

Em cluster (varios AppServers), FwLock garante exclusividade cross-process. Usa tabela do banco como mediador — qualquer no que adquirir, outros esperam.

Sintaxe

oLock := FwLock():New("job-fechamento-mensal")

If oLock:acquire(30000)  // espera ate 30s
    try
        U_FechamentoMensal()
    finally
        oLock:release()
    endtry
Else
    FwLogger():Info("Outro no esta processando")
EndIf

Quando usar

Pegadinhas

Veja também