Stratégie de repli/réessai

Cette rubrique explique la nécessité d'une stratégie de replus/nouvelle tentative pour les demandes Dynamic Ingest et fournit une description détaillée de la façon d'en implémenter une.

Fond

Dynamic Ingest impose une limitation du débit (par compte) de deux manières :

  • Pas plus de 20 requêtes (requêtes API CMS et/ou API Ingest) par seconde sont autorisées
  • Pas plus de 100 tâches prioritaires simultanées sont autorisées

Le premier n'est pas difficile à gérer dans votre application - vous pouvez simplement imposer un délai de 3 secondes ou plus entre les requêtes. La seconde est plus compliquée, car il n'y a aucun moyen d'interroger directement le système pour déterminer le nombre de travaux que vous avez actuellement en cours de traitement. Vous pouvez également envisager d'utiliser le File d'attente de faible priorité ce qui vous permettra de mettre en file d'attente plus de 100 travaux.

Vous pouvez simplement attendre un certain temps et réessayer les demandes jusqu'à ce qu'elles réussissent, mais vous pouvez implémenter un système de repli/réessayer plus rationnel en écoutant avis du système Dynamic Ingest et en utilisant les informations pour suivre vous-même les tâches en cours.

Une façon de mettre en œuvre cela serait de créer une application d'émetteur-récepteur qui à la fois soumet les demandes d'ingestion et écoute les notifications. Le diagramme ci-dessous montre la logique de haut niveau d'une telle application.

Logique de l'émetteur-récepteur
Logique de l'émetteur-récepteur

Exemple d'application

Vous pouvez trouver la source d'un échantillon Node-Express application dans ce Dépôt Github