Ir al contenido
LICENTIVO / INTEGRATION

Limite las exportaciones de archivos con un contador de uso mensual

Configure 500 exportaciones por UTC mes y deje que SDK reserve, ejecute y liquide cada tarea. Mantenga estable la identidad de las tareas comerciales para que los reintentos no cobren dos veces ni repitan el trabajo completado.

Flujo de trabajo de funciones · los nueve SDKActualizado

1. Configurar el contador de funciones.

Habilite una función de exportación en la política de autorización y asígnele un límite de 500 por mes. Decida si exceder el límite está bloqueado o permitido según la regla de excedente configurada para esa característica.

Los contadores de funciones pertenecen a la licencia del cliente. Están separados del dispositivo del espacio de trabajo del proveedor y de las cuotas de suscripción API. Los períodos de funciones diarios y mensuales utilizan UTC; un período mensual se reinicia al comienzo del siguiente mes calendario UTC.

2. Abra un cliente SDK

Copia el ID del producto en Consola > Productos. Abre las claves públicas de firma del mismo producto y pega todos los pares ID de clave/clave pública en el código de inicialización, sustituyendo YOUR_PRODUCT_ID, YOUR_KEY_ID y YOUR_PUBLIC_KEY. La integración rápida puede generar este código. No hace falta un archivo de configuración; el SDK usa https://www.licentivo.com de forma predeterminada.

Para un derecho normal, utilice RunFeature. Para una acción de uso limitado, utilice RunMeteredFeature. Una verificación exitosa de los derechos locales no prueba que se mantenga la cuota en línea.

3. Envolver la acción empresarial

Conserve una identificación de trabajo única antes de llamar al SDK. Reutilice esa identificación cuando vuelva a intentar la misma tarea comercial. El SDK primero reserva un uso, luego invoca la devolución de llamada y luego confirma el trabajo exitoso o cancela un fracaso comercial conocido.

Go · inside a function returning error
// client was opened once at application startup.
// jobID comes from your durable business task record.
jobID := os.Getenv("LICENTIVO_OPERATION_ID")
if jobID == "" {
    return fmt.Errorf("persist a unique task ID before exporting")
}
err := client.RunMeteredFeature(ctx, "export", 1, jobID, func() error {
    // Return success only after the output has been saved.
    return os.WriteFile("licensed-report.txt", []byte("Metered export\n"), 0600)
})
if err != nil {
    return err
}

4. Recuperar el trabajo interrumpido

Cuando una tarea ya está registrada como exitosa, volver a intentar su ID permite que SDK liquide la contabilidad pendiente sin volver a ejecutar su devolución de llamada. Si el proceso finalizó mientras se ejecutaba la devolución de llamada comercial, el SDK no puede saber si la operación externa finalizó.

Inspeccione el resultado comercial guardado. Llame al ResolveMeteredFeature(ctx, jobID, true) para confirmar el éxito, o a false para confirmar el fracaso. Esto resuelve únicamente la contabilidad. Nunca repita ciegamente un pago, entrega de archivos u otra acción irreversible.

La reserva predeterminada tiene una duración de 15 minutos y está limitada por un período de reinicio de UTC. Terminar y liquidar antes del vencimiento; no utilice el contenedor simple para un trabajo que pueda sobrevivir a su reserva. Una tarea comercial cancelada necesita una nueva identificación si el cliente inicia deliberadamente un nuevo intento.

5. Verificar el comportamiento contrario

  1. Comience con un pequeño límite de prueba. Una exportación exitosa debería aumentar el uso en uno.
  2. Hacer que la devolución de llamada devuelva un error antes de completar el trabajo: su reserva debe cancelarse.
  3. Vuelva a intentar una ID de trabajo grabada correctamente y confirme que la devolución de llamada no se repita.
  4. Agote una cuota bloqueada y confirme que la devolución de llamada no se ejecute. Muestra un mensaje claro con la próxima hora de reinicio.
  5. Simule una tarea interrumpida en su entorno de prueba y resuélvala a partir del registro comercial duradero.

Errores comunes

Las operaciones de contraataque requieren conectividad. Una licencia almacenada en caché sin conexión por sí sola no autoriza una reserva o confirmación sin conexión. No convierta silenciosamente una acción medida denegada en una acción no medida.

Una llamada de Consumo directo se descuenta inmediatamente. Utilice la devolución de llamada medida cuando el uso deba contar solo después del éxito empresarial. Una falla de la red una vez finalizado el trabajo es un problema de recuperación de contabilidad; No asuma que el trabajo fracasó.

Los ID de tareas estables y los diarios SDK ayudan a los reintentos; no reemplazan su transacción comercial ni el almacenamiento duradero de resultados. Mantenga disponibles tanto el resultado empresarial como la caché privada de SDK durante la recuperación.