2010-02-22 10 views
2

J'ai testé la taskqueue avec un succès mitigé. Actuellement, je suis en utilisant la file d'attente par défaut, dans les paramètres par défaut etc etc ....GAE Task Queue étrangeté

J'ai une configuration d'URL de test qui insère environ 8 tâches dans la file d'attente. Avec une commande courte, tous les 8 sont complétés correctement. Jusqu'ici tout va bien.

Le problème survient lorsque je recharge deux fois cette URL en moins d'une minute. Maintenant, en regardant la file d'attente des tâches, toutes les tâches sont ajoutées correctement, mais seulement le premier lot semble exécuter. Mais le "Run in Last Minute" # montre le bon nombre de tâches en cours d'exécution ....

Les journaux de demande racontent une histoire différente. Ils montrent uniquement le premier jeu de 8 en cours d'exécution, mais toutes les URL de création de tâches fonctionnent correctement.

L'étrangeté de ceci est que si j'attends une minute entre la tâche demandes d'URL de création, cela fonctionnera bien.

Assez curieusement changer la taille de bucket_size ou la vitesse d'exécution ne semble pas pour aider. Seul le premier lot est exécuté. J'ai également réduit le nombre de requêtes à 2, et je n'ai trouvé que la première exécution de . Tous les autres ajoutés affichent les mêmes problèmes que ci-dessus.

Des suggestions?

Merci

+0

Est-ce que ce deuxième séjour de lot dans la file d'attente des tâches pour toujours? Que dit la colonne ETA, toutes les tâches du deuxième lot sont-elles en retard? – noio

+0

Les tâches sont "exécutées" ou au moins GAE le pense, elles ne restent pas dans la file d'attente. – b3nw

+0

Lorsqu'une tâche est exécutée, GAE exécute un HTTP GET (ou POST) sur l'URL de la tâche. Ensuite, la tâche (url) est retirée de la file uniquement si elle renvoie http 200. Si elle renvoie 500, elle reste dans la file d'attente et GAE l'exécute à nouveau. Vérifiez soigneusement les journaux. Votre URL cible renvoie-t-elle toujours 200? –

Répondre

0

Lorsqu'une tâche file d'attente se termine par erreur: Je crois qu'il reste dans la file d'attente .. Vérifiez que

+0

La file d'attente de tâches s'efface, ce qui vous fait supposer qu'elle s'exécute. Mais il n'y a rien dans les journaux de demande. C'est comme si ce n'était pas vraiment la tâche. Juste le retirer? Est-ce possible? – b3nw

+0

Désolé pour la fin ... De mon expérience, quand vous faites taskqueue: utilisez le journal! Pour voir ce qui se passe ... c'est la seule façon de tester ça. La seule chose que je peux dire, c'est qu'il semble que vos taskqueues ne lancent pas d'exception (ils sont donc supprimés après le job) – manatlan