问题标签 [pika]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - RabbitMQ 客户端性能
伙计们,尝试使用 pika 客户端将日志文件解析到 RabbitMQ:
就性能而言,我看到 1 台 ec2 机器每秒可以发送大约 300 条消息。这不会从 m1.small 更改为 m1.large。
为了获得更好的性能,我应该花时间用 C 重写上述内容,还是应该寻找其他地方?
在同一台 RabbitMQ 机器上本地运行的测试显示完全相同。
如果我在本地运行 runjava.sh com.rabbitmq.examples.MulticastMain 测试,我会看到 10K/秒的性能。这让我相信 Python 客户端很慢,或者我没有正确测试设置。
python - pika 的 on_open_error_callback 方法签名是什么样的?
我正在使用 python,并且在我做的一个类的方法中
在我的源代码中,我将方法声明为(在一个类中):
但是在运行时我收到以下错误:
我一直无法找到任何显示此回调的实际方法签名的文档。我怀疑它在寻找方法的非类定义(即没有 self 作为参数)。那是对的吗?如果是这样的话?那么如何访问类变量,以便在连接错误时尝试重新连接?
我想我首先要寻找的是我的方法签名应该是什么样的?
提前致谢
python - Pika exchange_declare 回调中的交换名称
我尝试在exchange_declare
回调中使用交换名称。我将SelectConnection
适配器用于 Pika 中的异步请求。
我的想法是首先在我的程序中构建交换、队列和绑定列表。然后,我向 Pika 发送多个交换和队列声明,并在每个绑定所需的队列和交换收到它们的 DeclareOK 消息后立即创建绑定。
这意味着我需要知道回调中的交换和队列的名称,以便我可以将它们与要创建的绑定相关联。
像这样的东西:
这给出了以下输出,清楚地表明首先声明了交换,然后触发了回调(如预期的那样):
我发现它response
是pika.frame.Method类型,但我该如何从那里开始呢?交换是否可以保证按顺序声明?
python - python导入pika时没有模块名称pika
我为在 Mac 上运行的 python 安装了 pika
我确保已安装,这是尝试重新安装时的响应,
但是当我在 *.py 上导入 pika 时,我得到了,
ImportError:没有名为 pika 的模块
我的python版本
如何让这个模块被 Python 识别?谢谢!
编辑 1
我这样称呼导入
这给出了错误,我可以暂时解决这个问题,
那么如何使路径永久化呢?谢谢!
python - RabbitMQ python库检查状态
伙计们,我正在尝试检查错误的连接,并记录以提醒是否发生这种情况。
出于某种原因,这不起作用,并且正在吐出:
我怎样才能捕捉到失败并提醒他们并继续我的检查,而不是脚本爆发?
谢谢!
python - RabbitMQ:防止作业同时在两个不同的工作人员上运行
我有一个带有两个 RabbitMQ 工作人员的 Python Django 项目,使用 pika lib,它接收作业以对请求中指定的某个 Django 对象执行操作。
问题是,我不希望工作人员 A 和 B 同时对同一个 Django 对象 x 执行操作,因为这可能会导致问题。哪个工人先去并不重要,但如果 A 正在处理 x 并且 B 收到一份工作来处理 x,我希望这项工作等到 A 完成。
所以问题归结为能够知道其他工人在做什么,并且能够暂停工作直到某个时间。请注意,在我的实际项目中,我有超过 2 名工人,这必须适用于,我在我的示例中选择了两个,以便更容易剖析。
感谢您的帮助,马蒂亚斯
python - RabbitMQ 连接关闭异常
文件“/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py”,第 218 行,在 process_data_events 中引发异常。ConnectionClosed() pika.exceptions.ConnectionClosed
我知道创建 RabbitReceiver 后的代码可能不会被执行,因为 start_sumption 是阻塞的。但现在我并不担心这个。我想知道为什么它给我这个错误?可能我错过了什么...
python - 如何在rabbitmq、pika python中优雅地暂停和恢复消费
我使用 basic_consume() 接收消息和 basic_cancel 取消消费,但有一个问题。
这是 pika.channel 的代码
正如您所看到的,每次我取消消费时都会将 consumer_tag 添加到 _canceled 列表中。如果我再次在 basic_consume 中使用这个标签,就会引发 duplicateConsumer 异常。好吧,我每次都可以使用一个新的 consumer_tag,但实际上我不是。因为迟早生成的标签将与之前的一些标签完全匹配。
我应该如何在 pika 中优雅地暂停和恢复消费?
python-2.7 - 使用 pika connection.close() 给出“警告:pika.adapters.base_connection:断开连接时的未知状态:0”
使用 pika 关闭与 RabbitMQ 服务器的连接时,会WARNING:pika.adapters.base_connection:Unknown state on disconnect: 0
出现警告。
如果connection.close()
使用 no,则不会出现警告。是什么导致了这个警告,这是我们可以忽略的吗?
在 Mac OSX 上使用 Python 2.7、RabbitMQ 3.2.2、iPython 1.1.0、pika 0.9.13。
rabbitmq - 如何在 Pika 消费者中指定交换?
全部在标题中:在 rabbitmq 文档的以下方法中,我们看到发布将交换作为参数,但消费者没有。
另外,当我在使用它时,消费者中的内容与发布中queue
的相同吗?routing_key
我认为路由键就像一个标签,以便订阅者订阅各种标签的正则表达式
消费代码:
要发布的代码: