0
votes

Firestore Simple CollectionGroup marque le délai de fonctionnement

J'ai une fonction de cloud qui devrait fonctionner toutes les 2 minutes. Je teste actuellement la fonction à l'aide d'un fichier http et tente d'exécuter une requête Simple CollectionGroup comme suit

mise à jour 1 J'ai mis à jour mon code pour gérer offset et limite mais maintenant, il fonctionne bien pour le premier enregistrement d'ici à la recherche de la deuxième enregistrement.

Veuillez vérifier le snippet xxx

ancien code xxx

Ceci est littéralement le code entier dans la fonction, mais les délais de fonction et je n'arrive pas au journal de alertes . Je ne reçois pas ce qui pourrait être le problème ici? Toute chose que je pourrais être manquante ou ne pas y arriver? Toute aide serait appréciée.

merci


8 commentaires

Ce n'est littéralement pas le code entier, du moins pas dans le sens qui serait utile pour une utilisation sur le débordement de la pile. Veuillez modifier la question pour inclure la définition de la fonction également - vous devez inclure l'intégralité du contenu du fichier afin que nous puissions voir quel type de fonction est et expliquez comment vous l'appelez. Un MCVE sera utile. Veuillez lire: Stackoverflow.com/help/minimal-reproductible-example


Ok j'ai aussi ajouté la définition de la fonction. Voir s'il y a une anomalie?


Qu'est-ce que c'est exactement dans le journal, sinon ce que vous attendez?


Peu importe. Le problème est la fonction s'arrête simplement sur Let Alerts = attendre la partie DB et les moments après 60 secondes. La partie Console est juste pour voir si le code est en cours d'exécution ou non.


Pourriez-vous partager le journal quand même, même si vous pensez que cela n'a pas d'importance?


Je reçois cela dans les journaux: Avis: Longjohn est connu pour l'utilisation de la CPU en raison de sa vaste collecte de données pendant l'exécution. Il ne faut généralement pas être utilisé dans les applications de production.


Combien de documents pensez-vous correspondre à cette requête? Quelle est la taille de cette collection?


La collection d'alertes est présente dans tous les documents de la collection utilisateur, de sorte que chaque utilisateur aura environ plus de 2000 alertes afin que nous examinions peut être de 10 000 à 15 000 + documents ici.


3 Réponses :


0
votes

Peut-être que le processus prend simplement plus de 60 ans. Vous pouvez augmenter le Timeout de la fonction Cloud. Vous pouvez le lever jusqu'à 9 minutes et cela devrait fonctionner.

Sinon, le problème ne semble pas être de la fonction elle-même. Le problème peut être quelque part ici: const {db} = nécessite ("." Aide / Firestore "); . "DB" ne vient pas et que votre code s'arrête à Laissez alertes = Await dB .


2 commentaires

J'ai essayé de prolonger le temps de fonction à 9 minutes mais j'ai toujours expiré. La partie étrange est que cela fonctionne bien pour une certaine collection et pour certains, il est juste de passer cela dans les journaux: Avis: Longjohn est connu pour provoquer une utilisation du processeur en raison de sa vaste collecte de données pendant l'exécution. Il ne faut généralement pas être utilisé dans les applications de production.


Peut-être que vous frappez les quotas pour cf? Jetez un coup d'œil sur cette liste: cloud.google.com/functions/Quotas



0
votes

On dirait que vous demandez peut-être trop de données pour transmettre et stocker en mémoire sans problèmes. Je suggère PAGINING Vos données avec Limit () à la place afin que vous puissiez obtenir des résultats de traitement par lots sans dépasser les limites des instances de serveur de fonctions cloud (qui sont assez limitées). Commencez petit et travaillez votre chemin.


1 commentaires

Je fais juste cela, cela fonctionne bien pour le premier document, mais se bloque ensuite lors de la récupération du prochain. J'ai mis à jour ma question pour le code mis à jour.



0
votes

La solution à ce problème était de mettre à niveau la version de nœud actuelle. Par défaut, les fonctions du cloud fonctionnent sur noeud 8 qui a cessé de supporter de l'équipe officielle nœud.js. Donc, quand je passe à niveau vers nœud 10 , il a commencé à travailler à nouveau parfaitement!


0 commentaires