2009-06-25 8 views
2

J'utilise Solaris 10 OS (x86). J'ai installé beanstalkd et il commence très bien en utilisant la commande "beanstalkd -d -l hostip -p 11300".BeanStalkd sous Solaris ne renvoie rien quand il est appelé depuis la bibliothèque python

j'ai Python 2.4.4 sur mon système je l'ai installé YAML et bibliothèques python beanstalkc pour se connecter beanstalkd avec python mon problème est quand je tente d'écrire un code:

import beanstalkc = beanstalk beanstalkc.Connection (hôte = 'hostip', port = 11300)

aucune erreur jusqu'à présent, mais quand j'essaie de faire quelque chose sur beanstalk comme disent les listes d'attente. Rien ne se passe.

beanstalk.tubes()

il se bloque juste et rien retourne. si j'annule l'opération (en utilisant ctr + c sur python env.) ou arrête le serveur je vois immédiatement une sortie:

Traceback (dernier appel en dernier): Fichier "", ligne 1, dans? Fichier "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", ligne 134, dans les tubes return self._interact_yaml ('liste-tubes \ r \ n ', [' OK ']) Fichier "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", ligne 83, dans _interact_yaml , = self._interact (commande, expected_ok, expected_err) Fichier "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", ligne 57, dans _interact status, results = self_read_response() Fichier "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", ligne 66, dans _read_response réponse = self.socket_file.readline(). split() Fichier "/usr/lib/python2.4/socket.py", ligne 332, dans la ligne de lecture données = self._sock.recv (self._rbufsize)

aucune idée ce qui se passe? Je suis un newbie Unix donc je n'ai aucune idée de ce que j'ai fait mal pour provoquer cela.

éditer: semble que le problème réside dans BeanStalkd lui-même, quelqu'un a utilisé cela sur Solaris 10? si oui quelle version avez-vous utilisé? Le v1.3 labellisé ne se compile pas sous Solaris alors que le dernier du git code repository compile le problème ci-dessus (ou peut-être y a-t-il une configuration à faire sur Solaris?). Edit2: J'ai installé et compilé les mêmes composants avec beanstalkd, PyYAML, pythonbeanstalc et libevent sur une machine UBUNTU et cela fonctionne très bien. les problèmes semblent être sur la compilation de beanstalkd sur solaris, je n'ai pas encore produit ou lu n'importe quelle solution.

+0

J'ai juste essayé de connecter beanstalkd avec le client java même chose arrive, les scripts de test attendent juste (jusqu'à annulation ou beanstalkd arrêté) pour toujours. des idées ce qui pourrait être faux sur Beanstalkd? – Numenor

Répondre

1

un réseau-admin à vos côtés (ou site), je pourrais savoir ce qui est faux: ne commencez pas dans le démon (-d) le mode. J'ai vécu la même chose et par hasard j'ai découvert ce qui ne va pas.

Ou plutôt, je ne sais pas ce qui ne va pas, mais cela fonctionne sans l'exécuter en mode démon.

./beanstalkd -p 9977 &

comme alternative.

1

Il semble que le client python écoute le serveur, mais le serveur n'a rien à dire.

Y at-il quelque chose à lire pour le client?

Y a-t-il un consommateur ET un producteur?

Look at this

+0

oui, il y a quelque chose à lire pour le client, le serveur est supposé envoyer des tubes (beanstalk.tubes() demande d'appel qui) est "par défaut" tube, et c'est pareil avec toutes les autres commandes que j'essaye d'exécuter sur beanstalkc Objet .Connection), aucune commande ne semble répondre. – Numenor

+0

J'ai regardé le lien que vous envoyez, mais je n'utilise pas pybeanstalk, j'utilise beanstalkc – Numenor

1

Après avoir regardé dans le code (beanstalkc):

votre client a envoyer son message 'tubes liste-', et attend une réponse. (jusqu'à ce que vous le tuez) votre serveur ne répond pas ou ne peut pas envoyer la réponse au client. (ou la réponse est plus courte que le client attend)

est :-)

+0

J'ai également installé le serveur beanstalkd aussi. J'ai obtenu le dernier code pour beanstalkd et le compiler puisque le v1.3 officiel ne compilait pas sur solaris. où dois-je vérifier si beanstalkd ou réseau fonctionne correctement? Je peux obtenir mon administrateur de réseau à côté de moi, que dois-je lui demander :) – Numenor

+0

1. Dites à votre administrateur de réseau ce que vous voulez faire | 2. laissez-vous vérifier réseau-admin: connexion et trafic/y at-il des paquets entre le client et le serveur/de quel côté (client ou serveur ne fonctionne pas – Blauohr

+0

bien le client et le serveur s'exécutent sur la même machine, donc je doute est ou doit être une activité réseau. – Numenor

Questions connexes