2016-05-23 5 views
0

Je viens de commencer à utiliser pheanstalk et j'ai un problème avec la fonction de réserve. Je le code suivant pour un script de travail:Fonction de réserve Pheanstalk

<?php 
    //... code that requires the autoload.php page among and other 

    $queue = new Pheanstalk_Pheanstalk("127.0.0.1:11300"); 
    $queue->watch("action_tube"); 
    $job = $queue->reserve(); 

    //... code that would then output the information obtained from the job 
?> 

La question que j'ai est que le code est toujours bloqué lorsque préformage la fonction de réserve. Je sais pertinemment qu'il est bloqué là parce que j'ai fait l'effort d'exécuter ce code dans un navigateur et d'utiliser echo en commentant du code pour voir exactement où le code est bloqué. C'est comme si une boucle infinie se produisait à l'intérieur de la fonction de réserve. Par exemple, si je devais commenter $job = $queue->reserve(), le code diminuerait librement et la page se chargerait immédiatement, mais si je ne le commente pas, le chargement du cercle dans le navigateur continue pour toujours.

QUESTION: Pourquoi est-ce que je pourrais avoir ce problème? Est-ce normal pour la fonction de réserve? Reste-t-il à attendre que quelque chose apparaisse dans la file d'attente? J'ai effectivement la file d'attente "action_tube" créée à partir d'un script précédent, donc je pense que la fonction reserve prendrait certains d'entre eux. L'état de la file d'attente pourrait-il bloquer une fonction de réserve? Tout commentaire est grandement apprécié!

Répondre

2

réserve Beanstalk fonctionnera toujours jusqu'à ce que le travail est prêt

reserve blocs jusqu'à ce qu'un travail est prêt, peut-être pour toujours. Si cela n'est pas souhaité, nous pouvons invoquer réserve avec un délai (en secondes) combien de temps nous voulons attendre pour recevoir un travail. Si un tel temps de réserve sur, il retournera None:

>>> beanstalk.reserve(timeout=0) is None 
True 

Trouvé ce here

+0

Oh il est censé être une boucle pour toujours jusqu'à ce qu'il trouve quelque chose dans la file d'attente? – Webeng