2

我正在使用 Solaris 10 操作系统(x86)。我安装了 beanstalkd,它通过使用命令“beanstalkd -d -l hostip -p 11300”开始正常。

我的系统上有 Python 2.4.4 我安装了 YAML 和 beanstalkc python 库来连接 beanstalkd 和 python 我的问题是当我尝试编写一些代码时:

导入 beanstalkc beanstalk = beanstalkc.Connection(host='hostip', port=11300)

到目前为止没有错误,但是当我尝试在 beanstalk 上做一些事情时,比如说列出队列。没发生什么事。

豆茎.tubes()

它只是挂起,没有任何回报。如果我取消操作(在 python env 上使用 ctr+c)或停止服务器,我会立即看到输出:

回溯(最后一次调用):文件“”,第 1 行,在?文件“/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py”,第 134 行,在管中返回 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行,在_interact状态,结果=自我._read_response() 文件“/usr/lib/python2.4/site-packages/beanstalkc-0.1.1-py2.4.egg/beanstalkc.py”,第 66 行,在 _read_response response = self.socket_file.readline() .split() 文件“/usr/lib/python2.4/socket.py”,第 332 行,在 readline data = self.

知道怎么回事吗?我是一个 Unix 新手,所以我不知道我做错了什么设置导致这个。

编辑:似乎问题出在 BeanStalkd 本身,有人在 Solaris 10 上使用过这个吗?如果是这样,您使用的是哪个版本?标记为 one 的 v1.3 在 Solaris 上无法编译,而来自 git 代码库的最新版本编译它会导致上述问题(或者在 Solaris 上可能需要进行一些配置?)。

edit2:我使用 beanstalkd、PyYAML、pythonbeanstalc 和 libevent 将相同的组件安装并编译到 UBUNTU 机器上,它工作正常。问题似乎是关于在 solaris 上编译 beanstalkd,我还没有制作或阅读任何解决方案。

4

3 回答 3

1

貌似python-client监听服务端,但是服务端无话可说。

有什么要读给客户的吗?

有消费者和生产者吗?

看这个

于 2009-06-25T15:51:37.090 回答
1

查看代码(beanstalkc)后:

您的客户已发送他的“列表管”消息,正在等待答复。(直到你杀死它)你的服务器没有回答或不能将答案发送给客户端。(或者答案比客户预期的要短)

是您身边(或站点)的网络管理员 :-)

于 2009-06-26T08:56:06.900 回答
1

我可能知道出了什么问题:不要在守护进程 (-d) 模式下启动它。我也经历过同样的事情,偶然发现出了什么问题。

或者更确切地说,我不知道出了什么问题,但它可以在不以守护程序模式运行的情况下工作。

./beanstalkd -p 9977 &

作为备选。

于 2009-07-07T15:46:41.920 回答