Ir para o conteúdo

Licenciamento de recursos e limites de uso

Permissão para exportar difere de 500 exportações mensais. RunFeature verifica acesso; RunMeteredFeature confirma uso após sucesso.

Permitir 500 exportações por mês

Adicione export às funções e uma cota: export, 500, Mensal. Por padrão, após acabar, recusa o uso. Para permitir excedente, defina seu máximo; o sistema registra para seu sistema de pedidos.

Cotas diárias e mensais reiniciam à meia-noite UTC; acumuladas não reiniciam. Alterar a cota não apaga o uso consumido.

Confirmar o uso após exportar com sucesso

Passe sua função ao SDK. Novas tarefas usam novos IDs; novas tentativas mantêm ID, recurso e quantidade. Processos diferentes não devem executar o mesmo ID simultaneamente.

IdiomaChamada de operação por uso
Goclient.RunMeteredFeature(ctx, "export", 1, jobID, exportReport)
Javaclient.runMeteredFeature("export", 1, jobID, this::exportReport)
Node.jsawait client.runMeteredFeature("export", 1, jobID, exportReport)
Pythonclient.run_metered_feature("export", 1, job_id, export_report)
C#await client.RunMeteredFeature("export", 1, jobID, ExportReport)
C++client.RunMeteredFeature("export", 1, jobID, exportReport)
Rustclient.run_metered_feature("export", 1, &job_id, || export_report())?
Rubyclient.run_metered_feature("export", 1, job_id) { export_report }
Cln_run_metered_feature(client, "export", 1, job_id, export_report, context)

Configure a meter for the actual feature in your policy, then generate the AI integration prompt. AI should use the language's RunMeteredFeature with a stable business operation ID, preserving that ID when retrying the same task.

O SDK salva confirmações pendentes.

Se a operação tiver sucesso mas a confirmação falhar, a repetição só confirma. Falha durante a operação bloqueia nova execução automática. Confira o resultado persistido e use ResolveMeteredFeature para confirmar ou cancelar. Uso remoto e operação local não são uma só transação.

Quando precisar controlar as reservas
  1. Crie e salve um ID de tarefa para esta exportação.
  2. Reserve uma unidade e exporte só após pending. committed indica que já terminou; não execute novamente.
  3. Após exportar com sucesso e salvar o resultado, chame Commit para confirmar o uso.
  4. Se a exportação falhar antes de concluir, chame Cancel para liberar a reserva sem consumir unidades.

Reservas duram 15 minutos por padrão, reduzidos na virada do período UTC. Na API, reservation_seconds aceita 30–3600 segundos.

IdiomaReservarConfirmar / Cancelar
GoReserve(ctx, "export", 1, jobID)Commit / Cancel(ctx, hold.ID, jobID)
Java / Node.jsreserve("export", 1, jobID)commit / cancel(id, jobID)
Cln_reserve(client, "export", 1, jobID)ln_commit / ln_cancel(client, id, jobID)
C++ / C#Reserve("export", 1, jobID)Commit / Cancel(id, jobID)
Pythonreserve("export", 1, jobID)commit / cancel(id, jobID)

Como interpretar os campos da resposta?

CampoSignificado
reservation_id / operation_idID da reserva e ID original da tarefa; reutilize os mesmos valores nas tentativas.
status / expires_atEstado e prazo: pending aguarda conclusão, committed foi debitado, canceled foi liberado, expired venceu.
consumption.used / reservedUsos confirmados no período / unidades reservadas por todas as tarefas válidas.
consumption.limit / remainingCota básica / unidades básicas disponíveis. remaining = max(0, limit - used - reserved), sem o excedente permitido.
consumption.quantity / overageUnidades desta tarefa / unidades confirmadas acima da cota básica; não há cobrança ao cliente.
consumption.period / reset_atPeríodo UTC / próxima reinicialização; cotas vitalícias têm reset_at = null.

Veja corpos de solicitação, respostas e tipos de campos em Reserve, Commit e Cancel na referência da API de execução.

Após o tempo limite da confirmação, tente apenas confirmar novamente.

Após o sucesso, não cancele nem exporte de novo. Guarde IDs e resultado e repita Commit. Se a reserva expirou, mantenha a tarefa para conciliação. O consumo remoto e a operação local não formam uma transação atômica.

Consume registra uso imediatamente. Use reservas para não contar operações que falharam. Todos os endpoints de uso exigem conexão e não entram nas quatro operações API cobradas pela plataforma.