Aller au contenu
LICENTIVO / INTEGRATION

Limitez les exports de fichiers avec un compteur d'utilisation mensuel

Configurez 500 exports par mois UTC et laissez le SDK réserver, exécuter et régler chaque tâche. Maintenez la stabilité de l’identité des tâches métier afin que les nouvelles tentatives ne facturent pas deux fois ou ne répètent pas le travail terminé.

Flux de travail des fonctionnalités · les neuf SDKMis à jour

1. Configurez le compteur de fonctionnalités

Activez une fonctionnalité d'exportation sur la politique d'autorisation et donnez-lui une limite de 500 par mois. Décidez si le dépassement de la limite est bloqué ou autorisé en vertu de la règle de dépassement configurée pour cette fonctionnalité.

Les compteurs de fonctionnalités appartiennent à la licence du client. Ils sont distincts de l’appareil de l’espace de travail du fournisseur et des quotas d’abonnement API. Les périodes de fonctionnalités quotidiennes et mensuelles utilisent UTC ; une période mensuelle se réinitialise au début du mois civil UTC suivant.

2. Ouvrez un client SDK

Copiez l’ID du produit dans Console > Produits. Ouvrez les clés publiques de signature du même produit et collez toutes les paires ID de clé/clé publique dans le code d’initialisation, en remplaçant YOUR_PRODUCT_ID, YOUR_KEY_ID et YOUR_PUBLIC_KEY. L’intégration rapide peut générer ce code. Aucun fichier de configuration n’est nécessaire ; le SDK utilise https://www.licentivo.com par défaut.

Pour un droit normal, utilisez RunFeature. Pour une action à usage limité, utilisez RunMeteredFeature. Une vérification locale réussie des droits ne prouve pas que le quota en ligne demeure.

3. Enveloppez l’action commerciale

Conservez un ID de tâche unique avant d'appeler le SDK. Réutilisez cet ID lorsque vous réessayez la même tâche métier. Le SDK réserve d'abord une utilisation, puis appelle le rappel, puis confirme le succès du travail ou annule un échec commercial connu.

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. Récupérer le travail interrompu

Lorsqu'une tâche est déjà enregistrée comme réussie, réessayer son ID permet au SDK de régler la comptabilité en attente sans réexécuter son rappel. Si le processus s'arrête pendant l'exécution du rappel métier, le SDK ne peut pas savoir si l'opération externe est terminée.

Inspectez votre résultat commercial enregistré. Appelez le ResolveMeteredFeature(ctx, jobID, true) pour un succès confirmé, ou false pour un échec confirmé. Cela résout uniquement la comptabilité. Ne répétez jamais aveuglément un paiement, une livraison de fichier ou toute autre action irréversible.

La réservation par défaut dure 15 minutes et est limitée par une période de réinitialisation de UTC. Terminer et régler avant expiration ; n'utilisez pas le simple wrapper pour un travail qui pourrait survivre à sa réservation. Une tâche commerciale annulée nécessite un nouvel ID si le client lance délibérément une nouvelle tentative.

5. Vérifier le comportement du compteur

  1. Commencez avec une petite limite de test. Une exportation réussie devrait augmenter l'utilisation d'un.
  2. Faites en sorte que le rappel renvoie une erreur avant de terminer les travaux : sa réservation doit être annulée.
  3. Réessayez un ID de travail enregistré avec succès et confirmez que le rappel ne se répète pas.
  4. Épuisez un quota bloqué et confirmez que le rappel ne s’exécute pas. Afficher un message clair avec la prochaine heure de réinitialisation.
  5. Simulez une tâche interrompue sur votre environnement de test et résolvez-la à partir du dossier métier durable.

Erreurs courantes

Les opérations de comptoir nécessitent une connectivité. Une licence mise en cache hors ligne n'autorise pas à elle seule une réserve ou un engagement hors ligne. Ne transformez pas silencieusement une action mesurée refusée en une action non mesurée.

Un appel direct Consommer est déduit immédiatement. Utilisez le rappel mesuré lorsque l'utilisation ne devrait compter qu'après le succès de l'entreprise. Une panne de réseau une fois les travaux terminés est un problème de récupération comptable ; ne présumez pas que le travail a échoué.

Les ID de tâche stables et les journaux SDK facilitent les nouvelles tentatives ; ils ne remplacent pas votre transaction commerciale ni le stockage durable des résultats. Conservez à la fois le résultat commercial et le cache privé du SDK pendant la récupération.