草庐IT

python - 在 Pika 或 RabbitMQ 中,如何检查当前是否有消费者正在消费?

我想检查是否存在Consumer/Worker来消费我将要发送的Message。如果没有任何Worker,我会启动一些worker(消费者和发布者都在一台机器上)然后开始发布消息。p>如果有像connection.check_if_has_consumers这样的函数,我会像这样实现它-importpikaimportworkers#codeforpublishingtoworkerqueueconnection=pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))channel=connection.

python - RabbitMQ 在处理长时间运行的任务和超时设置产生错误时关闭连接

我正在使用RabbitMQ生产者将长时间运行的任务(30分钟以上)发送给消费者。问题是当与服务器的连接关闭并且未确认的任务重新排队时,消费者仍在处理任务。通过研究我了解到heartbeat或increasedconnectiontimeout可以用来解决这个问题。这两种解决方案在尝试时都会引发错误。在阅读类似帖子的答案时,我还了解到自发布答案以来,RabbitMQ已经实现了许多更改(例如,默认心跳超时已从RabbitMQ3.5.5之前的580更改为60)。指定心跳和阻塞连接超时时:credentials=pika.PlainCredentials('user','password')p

python - 有什么办法可以通过 pika 列出 rabbitmq 中的队列?

我知道我们可以这样做来列出rabbitmq中的队列。rabbitmqctllist_queues但是我怎样才能通过pika做到这一点呢? 最佳答案 没有。Pika是一个AMQP库。如果你想管理一个MQBroker,那么你需要一个MQBroker管理工具。幸运的是,如果您安装了最新版本的RabbitMQ(例如2.7.1)并安装了RabbitMQ管理插件,则RabbitMQ附带了这样一个工具。这为您提供了一个WebGUI以及一个可以在脚本中使用的RESTfulAPI。但这都超出了AMQP本身的范围。http://www.rabbitmq

python - 使用 pika 在 python 中使用 SparkStreaming、RabbitMQ 和 MQTT

为了让事情变得棘手,我想使用来自rabbitMQ队列的消息。现在我知道在rabbit(https://www.rabbitmq.com/mqtt.html)上有一个MQTT插件。但是,我似乎无法制作一个Spark使用从pika生成的消息的示例。例如,我在这里使用简单的wordcount.py程序(https://spark.apache.org/docs/1.2.0/streaming-programming-guide.html)来查看我是否可以通过以下方式看到消息producer:importsysimportpikaimportjsonimportfutureimportppro

python - 使用 pika 在 python 中使用 SparkStreaming、RabbitMQ 和 MQTT

为了让事情变得棘手,我想使用来自rabbitMQ队列的消息。现在我知道在rabbit(https://www.rabbitmq.com/mqtt.html)上有一个MQTT插件。但是,我似乎无法制作一个Spark使用从pika生成的消息的示例。例如,我在这里使用简单的wordcount.py程序(https://spark.apache.org/docs/1.2.0/streaming-programming-guide.html)来查看我是否可以通过以下方式看到消息producer:importsysimportpikaimportjsonimportfutureimportppro

python - 在 python/pika 中使用多个队列

我正在尝试创建一个订阅多个队列的消费者,然后在消息到达时对其进行处理。问题是,当第一个队列中已经存在一些数据时,它会消耗第一个队列,而永远不会去消耗第二个队列。但是,当第一个队列为空时,它确实会转到下一个队列,然后同时消耗两个队列。我首先实现了线程,但想避开它,当pika库为我完成它时没有太多复杂性。以下是我的代码:importpikamq_connection=pika.BlockingConnection(pika.ConnectionParameters('x.x.x.x'))mq_channel=mq_connection.channel()mq_channel.basic_q

python - 在 python/pika 中使用多个队列

我正在尝试创建一个订阅多个队列的消费者,然后在消息到达时对其进行处理。问题是,当第一个队列中已经存在一些数据时,它会消耗第一个队列,而永远不会去消耗第二个队列。但是,当第一个队列为空时,它确实会转到下一个队列,然后同时消耗两个队列。我首先实现了线程,但想避开它,当pika库为我完成它时没有太多复杂性。以下是我的代码:importpikamq_connection=pika.BlockingConnection(pika.ConnectionParameters('x.x.x.x'))mq_channel=mq_connection.channel()mq_channel.basic_q

python - 如何在 RabbitMQ 中创建延迟队列?

使用Python、Pika和RabbitMQ创建延迟(或parking)队列的最简单方法是什么?我见过类似的questions,但对于Python没有。我发现在设计应用程序时这是一个有用的想法,因为它允许我们限制需要再次重新排队的消息。总有可能您收到的消息超出您的处理能力,可能是HTTP服务器速度较慢,或者数据库压力过大。我还发现,在对丢失消息零容忍的情况下出现问题时,它非常有用,而重新排队无法处理的消息可能会解决这个问题。它还可能导致消息反复排队的问题。可能导致性能问题,并记录垃圾邮件。 最佳答案 我发现这在开发我的应用程序时非常

python - 如何在 RabbitMQ 中创建延迟队列?

使用Python、Pika和RabbitMQ创建延迟(或parking)队列的最简单方法是什么?我见过类似的questions,但对于Python没有。我发现在设计应用程序时这是一个有用的想法,因为它允许我们限制需要再次重新排队的消息。总有可能您收到的消息超出您的处理能力,可能是HTTP服务器速度较慢,或者数据库压力过大。我还发现,在对丢失消息零容忍的情况下出现问题时,它非常有用,而重新排队无法处理的消息可能会解决这个问题。它还可能导致消息反复排队的问题。可能导致性能问题,并记录垃圾邮件。 最佳答案 我发现这在开发我的应用程序时非常

python - 可以在网络应用程序中使用 Pika BlockingConnection 吗?

我对BlockingConnection和AsyncoreConnection有点困惑。我想从Django应用程序向RabbitMQ队列发送一些消息。使用全局BlockingConnection对象可以做到这一点吗?谢谢。 最佳答案 每个线程都需要有一个BlockingConnection对象,如pikaFAQ中所述:Pikadoesnothaveanynotionofthreadinginthecode.IfyouwanttousePikawiththreading,makesureyouhaveaPikaconnectionpe