2009-06-25 10 views
2

私はSolaris 10 OS(x86)を使用しています。私はbeanstalkdをインストールし、それは "beanstalkd -d -l hostip -p 11300"コマンドを使ってうまく始まります。Solaris上のBeanStalkdは、Pythonライブラリから呼び出されたときに何も返さない

私は私はいくつかのコードを記述しようとすると、私の問題があるのpythonでbeanstalkdを接続するためにYAMLとbeanstalkcのPythonライブラリをインストールし、私のシステム上のPython 2.4.4があります。 豆の木= beanstalkc.Connection(ホストbeanstalkc

インポート= 'hostip'、port = 11300)

これまでのところエラーはありませんでしたが、私はリストキューのようにbeanstalkでsometingを実行しようとしました。何も起こりません。

beanstalk.tubes()

それだけでハングアップし、何も返しません。私が操作をキャンセルする(python env。でctr + cを使用する)か、サーバーを停止するとすぐに出力が表示されます。

トレースバック(最新のコール最後): ファイル ""、行1、 ファイル "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py"、134行目、チューブ内 return self._interact_yaml( 'list-tubes \ r \ n '、[' OK ']) ファイル "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py"、83行、_interact_yaml サイズ、= self._interact(command、expected_ok、expected_err) ファイル "/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py"、行57、in _interact ステータス、結果= self._read_response() ファイル「/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py」、行66、_read_response内 レスポンス= self.socket_file.readline()。split() ファイル "/usr/lib/python2.4/socket.py"、行332、readline data = self._sock.recv(self._rbufsize)

何が起こっていますか?私はUnixの初心者ですので、何が起こったのか分かりません。

編集:問題はBeanStalkd自体の中にあるようですが、誰もがこれをSolaris 10で使用しましたか?もしそうなら、どのバージョンを使ったのですか? v1.3はSolaris上ではコンパイルされませんが、gitコードリポジトリから最新のものがコンパイルされると、上記の問題が発生します(あるいは、Solaris上でいくつかの設定が行われているかもしれません)。

edit2:私はbeanstalkd、PyYAML、pythonbeanstalc、libeventと同じコンポーネントをUBUNTUマシンにインストールしてコンパイルしても問題ありません。問題はsolarisのBeanstalkdのコンパイルについてのようですが、私はまだ何か解決策を出したり読んだりしていません。

+0

私はちょうど同じことが起きると、テストスクリプトはちょうど(キャンセルするまで、またはBeanstalkdが停止するまで)待って、永遠にJavaクライアントとBeanstalkdを接続しようとしました。 Beanstalkdで何が間違っているのでしょうか? – Numenor

答えて

1

:-)私が間違っているか知っているかもしれません:(デーモンで起動しません。 -d)モード。私は同じことを経験していて、うっかり何が間違っているのか分かった。

また、私は何が間違っているのか分かりませんが、デーモンモードで実行することなく動作します。

代替として./beanstalkd -p 9977 &

1

python-clientがサーバーをリッスンしていると思われますが、 ですが、サーバーには何も言えません。

クライアントのために何かお読みになりますか?

消費者とプロデューサーはいますか?コード(beanstalkc)で見た後

Look at this

+0

はい、クライアントのために読むべきものがあります。サーバは "デフォルト"のチューブであるチューブ(beanstalk.tubes()呼び出しリクエスト)を送信し、他のすべてのコマンドと同じものを送信します。beanstalk(beanstalkc .Connectionオブジェクト)、コマンドが応答していないようです。 – Numenor

+0

あなたが送るリンクを見ましたが、私はpybeanstalkを使用していません、私はbeanstalkcを使用しています – Numenor

1

あなたのクライアントは、彼の「リスト・チューブ」というメッセージを送っている、との回答を待っています。 (あなたがそれを殺すまで) あなたのサーバーは応答しない、またはクライアントに答えを送ることができません。 (またはその答えは、クライアントが予想よりも短い)

はあなたの側(またはサイト)でのネットワーク管理者である

+0

私もbeanstalkdサーバーもインストールしました。私は、公式のv1.3がsolarisでコンパイルされていなかったので、beanstalkdの最新コードを入手してコンパイルしました。どこでBeanStalkdやネットワークが正常に動作することを確認する必要がありますか?私は私の側で私のネットワーク管理者を得ることができます、私は彼に尋ねる必要があります:) – Numenor

+0

1.あなたのネットワーク管理者に何をしたいかを伝えてください| 2.ネットワーク管理者の確認:接続とトラフィック/クライアントとサーバーの間にパケットがありますか(クライアントまたはサーバーが動作しません) – Blauohr

+0

クライアントとサーバーの両方が同じマシンで実行されているので、任意のネットワーク活動である必要があります。 – Numenor

関連する問題