Conn2Flow
Navegação das docs

Referência / Bibliotecas

Biblioteca deploy-lock.php

Trava atômica por ambiente que impede dois deploys ao mesmo tempo (req-197).

Caminho no Gestor bibliotecas/deploy-lock.php

Trava de deploy por ambiente (req-197). Um arquivo de trava impede dois deploys ao mesmo tempo no mesmo ambiente. Quem usa:

  • a atualização do sistema (temp/deploy.lock, no CLI e no web);

  • o deploy de projeto por API (mesmo arquivo; recusa com HTTP 409);

  • o pipeline c2f project:update-all (trava por destino em GIT/.c2f-deploy-locks/, com espera).

A biblioteca é pura: não depende do Gestor, porque roda no atualizador independente, na API e no CLI. Para usar, carregue com require_once.

  • Criação atômica (fopen com x): só um processo cria o arquivo.

  • Conteúdo da trava: dono, detalhe, execução, máquina, PID, início e validade (expires_at).

  • Trava vencida (processo que morreu sem liberar): é tirada do caminho por rename atômico e assumida. Quem assumiu recebe stale para registrar no log.

  • Liberação e renovação: só o dono do token libera; deploy_lock_refresh() estende a validade em execuções longas.

Uso

  • deploy_lock_acquire($arquivo, $dono, $ttl) tenta pegar a trava. Devolve ok e o token, ou busy com quem está com ela (holder). Cria a pasta se faltar.

  • deploy_lock_release($arquivo, $token) libera, só com o token certo; deploy_lock_refresh($arquivo, $token, $ttl) estende a validade.

  • deploy_lock_read($arquivo) lê a trava atual; deploy_lock_expired($trava) diz se venceu (trava ilegível conta como vencida).

  • deploy_lock_describe($trava) monta o texto de recusa: dono, detalhe, execução, máquina, PID, início e validade.

Funções

Gerado a partir de gestor/bibliotecas/deploy-lock.php · 6 funções

6 de 6

deploy_lock_acquire

ver no código · linha 46 ↗
deploy_lock_acquire(string $arquivo, array $dono, int $ttl = DEPLOY_LOCK_TTL): array

Tenta pegar a trava.

Parâmetros

$arquivostring
Caminho do arquivo de trava (a pasta é criada se faltar).
$donoarray
['owner' => quem (ex.: 'update-system', 'api-project-update', 'pipeline'),
$ttlint
Validade em segundos.

Retorno

array
['ok' => true, 'token' => string, 'lock' => array, 'stale' => array|null]

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada