2009-06-25 2 views
2

Ich verwende Solaris 10 OS (x86). Ich habe Beanstalkd installiert und es startet gut mit dem Befehl "beanstalkd -d -l hostip -p 11300".BeanStalkd auf Solaris gibt nichts zurück, wenn es aus der Python-Bibliothek

ich habe Python 2.4.4 auf meinem System i YAML und beanstalkc Python-Bibliotheken installiert beanstalkd mit Python verbinden mein Problem ist, wenn ich versuche, einen Code zu schreiben:

Import beanstalkc Bohnenstengel = beanstalkc.Connection (host = 'hostip', port = 11300)

bisher kein Fehler, aber wenn ich versuche, etwas auf Bohnenstange zu tun, wie zB Warteschlangen auflisten. nichts passiert.

beanstalk.tubes()

hängt er einfach und nichts zurückgibt. Wenn ich den Vorgang abbringe (mit ctr + c auf python env.) oder den Server stoppe, sehe ich sofort eine Ausgabe:

Traceback (letzter Anruf zuletzt): Datei "", Zeile 1, in? Datei "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", Zeile 134, in Tubes return self._interact_yaml ('list-tubes \ r \ n ', [' OK ']) Datei "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", Zeile 83, in _interact_yaml Größe , = self._interact (Befehl, expected_ok, expected_err) Datei "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", Zeile 57, in _interact Status, Ergebnisse = self._read_response() Datei "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py", Zeile 66, in _read_response Antwort = self.socket_file.readline(). split() Datei "/usr/lib/python2.4/socket.py", Zeile 332, in Readline data = self._sock.recv (self._rbufsize)

eine Idee was geht? Ich bin ein Unix-Neuling, also habe ich keine Ahnung, was ich Setup falsch gemacht habe, um dies zu verursachen.

edit: scheint wie das Problem in BeanStalkd selbst liegt, hat jemand dieses auf Solaris 10 verwendet? Wenn ja, welche Version hast du benutzt? Die mit v1.3 bezeichnete Version kompiliert nicht unter Solaris, während die neueste Version von git code repository das obige Problem verursacht (oder gibt es unter Solaris eine Konfiguration?).

edit2: ich installiert und kompiliert die gleichen Komponenten mit Bohnenstange, PyYAML, Pythonbeanstalc und Libevent zu einem UBUNTU Maschine und es funktioniert gut. Probleme scheint es zu sein, Bohnenstangen auf Solaris zu kompilieren, ich muss noch keine Lösung herstellen oder lesen.

+0

Ich habe gerade versucht, Beanstalkd mit Java-Client zu verbinden, die gleiche Sache passiert, warten die Testskripte (bis abgebrochen oder beanstalkd gestoppt) für immer. irgendwelche Ideen, was auf Bohnenstange falsch sein könnte? – Numenor

Antwort

1

Ich weiß vielleicht was falsch ist: Sie starten Sie es nicht in Daemon (-d) Modus. Ich habe das Gleiche erlebt und durch Zufall herausgefunden, was falsch ist.

Oder besser gesagt, ich weiß nicht, was falsch ist, aber es funktioniert, ohne es im Daemon-Modus zu laufen.

./beanstalkd -p 9977 &

als Alternative.

1

Es scheint, dass der Python-Client auf den Server hört, , aber der Server hat nichts zu sagen.

Gibt es etwas zu lesen für den Kunden?

Gibt es einen Verbraucher UND einen Produzenten?

Look at this

+0

Ja, es gibt etwas zu lesen für den Client, Server soll Röhren senden (BeanStalk.Tubes() Call Requests, die) "Standard" Tube, und das gleiche mit jedem anderen Befehl ich versuche, auf Bohnenstange (Bohnenstalkc .Connection-Objekt), scheint kein Befehl zu antworten. – Numenor

+0

Ich schaute auf den Link, den Sie senden, aber ich benutze nicht pybeanstalk, ich benutze beanstalkc – Numenor

1

Nachdem im Code (beanstalkc) suchen:

Ihr Kunde hat seine Liste-Röhren 'Nachricht senden und auf eine Antwort wartet. (bis Sie es töten) Ihr Server antwortet nicht oder kann die Antwort nicht an den Client senden. (oder die Antwort ist kürzer als der Client erwarten)

ist ein Netzwerk-Admin an Ihrer Seite (oder Website) :-)

+0

Ich habe auch Beanstalkd Server zu installieren. Ich habe den neuesten Code für Beanstalkd und kompiliere es seit der offiziellen v1.3 nicht Kompilierung auf Solaris. Wo soll ich genau prüfen, ob Bohnenstange oder Netzwerk funktioniert? Ich kann meinen Netzwerk-Admin an meiner Seite, was soll ich ihn fragen :) – Numenor

+0

1. Sagen Sie Ihrem Netzwerk-Admin, was Sie tun möchten | 2. Lassen Sie Ihre Netzwerk-Admin-Prüfung: Verbindung und Verkehr/gibt es Pakete zwischen Client und Server/welche Seite (Client oder Server funktioniert nicht. – Blauohr

+0

gut sowohl Client und Server läuft auf der gleichen Maschine, so bezweifle ich, wenn dort ist oder muss eine Netzwerkaktivität sein. – Numenor