J’essaie de créer un tas de sujets + publications automatiquement. Cependant, je suis constamment confronté à des limites de débit.
J’ai d’abord essayé cela en utilisant l’API. Mon script a rapidement rencontré des erreurs 429. J’ai essayé d’ajuster les limites de débit en tant qu’administrateur (voir capture d’écran), mais je ne suis pas sûr de la bonne approche ici, ou si c’est une mission impossible.
Ensuite, j’ai essayé d’utiliser un script ruby avec rails r <script> depuis l’intérieur du conteneur. Cependant, ici encore, je vois An error occurred RateLimiter::LimitExceeded. J’ai été surpris par cela, pourquoi la méthode ruby est-elle soumise à des limites de débit ?
Quoi qu’il en soit, y a-t-il un moyen d’éviter cela ? Quelle est la bonne façon d’importer des données en masse ? J’ai pensé à utiliser SQL directement, mais je préférerais une API de plus haut niveau pour ne pas avoir à me soucier des champs manquants dans la base de données lorsque je crée un élément.
Je me demande si mon serveur est dans un état étrange. J’ai joué avec les limites de débit dans la capture d’écran, en les réglant sur zéro et peut-être -1. Maintenant, j’obtiens ces erreurs de limite de débit partout. C’est étrange cependant, certaines des requêtes passent, donc sur 1500 enregistrements que je veux créer, trois ou quatre parviennent à la base de données. Je vais peut-être supprimer la base de données, la rafraîchir et voir si cela la corrige. Je ne sais pas comment vérifier l’état de la base de données et capturer le bug s’il y en a un.
Est-il possible de désactiver temporairement les limites de débit pendant mon importation, puis de les rétablir plus tard ? Pour l’instant, je suis le seul à utiliser l’API (je n’envisage pas de laisser mes utilisateurs utiliser l’API). Je pourrais donc même désactiver définitivement les limites de débit si cela est possible.
@pfaffman Je parie que j’ai tout gâché en modifiant les limites de débit et que maintenant le système est dans un état étrange et que ces erreurs ne sont pas vraiment le problème, c’est autre chose. Je vais recréer le serveur et voir si mon script fonctionne cette fois-ci, puis je ferai un rapport.
Malheureusement, la recréation du serveur n’a pas résolu le problème.
J’ai supprimé le répertoire postgres_data dans shared, puis j’ai exécuté ./launcher rebuild app et j’ai obtenu une nouvelle instance de l’application.
Mon script crée maintenant l’utilisateur et la catégorie appartenant à l’utilisateur, puis tente de créer des sujets dans cette catégorie. Mais, il rencontre immédiatement l’erreur de limite de débit : An error occurred RateLimiter::LimitExceeded
Je suis vraiment bloqué car il semble que les scripts rails r ne devraient pas être soumis aux problèmes de limite de débit, n’est-ce pas ? Je vois du code dans les modèles qui indique que le code de limitation de débit est exécuté, mais je ne sais pas comment le désactiver ni comment vérifier que cela ne se produit que lorsqu’une requête arrive via l’API.
D’autres suggestions ? Je pense que passer directement par psql est maintenant ma meilleure option, ce qui est décevant car le script rails r est beaucoup plus propre et plus facile à utiliser.