BeanStalkd en Solaris no devuelve nada cuando se llama desde la biblioteca de Python
-
20-08-2019 - |
Pregunta
Estoy usando el sistema operativo Solaris 10 (x86). instalé beanstalkd y comienza bien usando el comando " beanstalkd -d -l hostip -p 11300 " ;.
Tengo Python 2.4.4 en mi sistema. Instalé las bibliotecas Python YAML y beanstalkc para conectar beanstalkd con Python. Mi problema es cuando intento escribir algún código:
importar beanstalkc beanstalk = beanstalkc.Connection (host = 'hostip', puerto = 11300)
no hay ningún error hasta el momento, pero cuando trato de hacer algo en beanstalk como decir listas de colas no pasa nada.
beanstalk.tubes ()
simplemente se cuelga y no vuelve nada. si cancelo la operación (usando ctr + c en python env.) o detengo el servidor, inmediatamente veo una salida:
Rastreo (última llamada más reciente): Archivo & Quot; & Quot ;, línea 1, en? Archivo & Quot; /usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py & Quot ;, línea 134, en tubos return self._interact_yaml ('list-tubes \ r \ n', ['OK']) Archivo & Quot; /usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py & Quot ;, línea 83, en _interact_yaml tamaño, = self._interact (comando, esperado_ok, esperado_err) Archivo & Quot; /usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py & Quot ;, línea 57, en _interact estado, resultados = self._read_response () Archivo & Quot; /usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py & Quot ;, línea 66, en _read_response respuesta = self.socket_file.readline (). split () Archivo & Quot; /usr/lib/python2.4/socket.py & Quot ;, línea 332, en línea de lectura data = self._sock.recv (self._rbufsize)
alguna idea de lo que pasa? Soy un novato de Unix, así que no tengo idea de qué hice mal para causar esto.
editar: parece que el problema se encuentra dentro de BeanStalkd, ¿alguien ha usado esto en Solaris 10? si es así, ¿qué versión usaste? El v1.3 etiquetado no se compila en Solaris, mientras que el último del repositorio de código git compila causa el problema anterior (¿o tal vez hay alguna configuración que hacer en Solaris?).
edit2: instalé y compilé los mismos componentes con beanstalkd, PyYAML, pythonbeanstalc y libevent en una máquina UBUNTU y funciona bien. Los problemas parecen estar relacionados con la compilación de beanstalkd en Solaris, todavía tengo que producir o leer alguna solución.
Solución
Podría saber qué está mal: no lo inicies en modo daemon (-d). He experimentado lo mismo y por accidente descubrí lo que está mal.
O mejor dicho, no sé qué está mal, pero funciona sin ejecutarlo en modo demonio.
./beanstalkd -p 9977 & amp;
como alternativa.
Otros consejos
Parece que el cliente python escucha al servidor, pero el servidor no tiene nada que decir.
¿Hay algo que leer para el cliente?
¿Hay un consumidor Y un productor?
Después de buscar en el código (beanstalkc):
su cliente ha enviado su mensaje 'list-tubes' y está esperando una respuesta. (hasta que lo mates) su servidor no responde o no puede enviar la respuesta al cliente. (o la respuesta es más corta de lo que el cliente espera)
es un administrador de red a su lado (o sitio) :-)