2010-05-11 3 views
0

J'ai un script démon écrit en Perl qui vérifie les tables d'une base de données, les extrait un à un, envoie le contenu via HTTP à un autre service, puis enregistre le résultat et répète (un seul enfant). Lorsque des lignes sont présentes, la première est enregistrée et enregistrée immédiatement, mais toutes les suivantes sont retardées d'environ 20 secondes. Il n'y a pas sleep() en cours d'exécution, et je ne peux pas trouver d'autres retards évidents. Des idées?Script de démon Perl pour la file d'attente de messages suspendue pendant 20 secondes après chaque processus. Pourquoi?

+5

comprenant au moins certaines parties clés de votre script pourrait aller un long chemin à trouver le problème. – pdehaan

Répondre

0

Sans code, personne ne peut vous aider. Vous devriez réduire votre code dans un test de test minimum qui représente votre erreur et l'afficher ici. Probablement si vous souvent vous trouvez l'erreur vous-même.

Et probablement même sans "sleep" votre processus peut se bloquer si vous n'avez pas fait de programmation asynchrone et appelez quelque chose qui prend du temps à s'exécuter.

Vous pouvez trouver ce code qui se bloque si vous exécutez votre programme dans un profileur comme Devel::NYTProf

Questions connexes