Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在python 2.7中,SIGHUP信号给出pika异常_Python 2.7_Rabbitmq_Pika_Python Pika - Fatal编程技术网

Python 2.7 在python 2.7中,SIGHUP信号给出pika异常

Python 2.7 在python 2.7中,SIGHUP信号给出pika异常,python-2.7,rabbitmq,pika,python-pika,Python 2.7,Rabbitmq,Pika,Python Pika,我有一个鼠兔消费者 当我运行它并发送SIGHUP信号时,它会给我一个异常 消费者测试 例外情况: [*]正在等待消息。要退出,请按CTRL+C 收到的感叹 回溯(最近一次呼叫最后一次): 文件“/run/media/bluto/04D0CF8ED0CF8500/Email\u Projects/new\u Email\u workers/testsigHup.py”,第47行,在 mq_通道。启动_消耗() 文件“/usr/lib/python2.7/site packages/pika/ada

我有一个鼠兔消费者 当我运行它并发送SIGHUP信号时,它会给我一个异常

消费者测试 例外情况:
[*]正在等待消息。要退出,请按CTRL+C
收到的感叹
回溯(最近一次呼叫最后一次):
文件“/run/media/bluto/04D0CF8ED0CF8500/Email\u Projects/new\u Email\u workers/testsigHup.py”,第47行,在
mq_通道。启动_消耗()
文件“/usr/lib/python2.7/site packages/pika/adapters/blocking_connection.py”,第814行,在start_中
self.connection.process\u data\u events()
文件“/usr/lib/python2.7/site packages/pika/adapters/blocking_connection.py”,第168行,进程内数据事件
如果self.\u handle\u read():
文件“/usr/lib/python2.7/site packages/pika/adapters/blocking_connection.py”,第271行,在句柄中读取
如果self.\u read\u poller.ready():
文件“/usr/lib/python2.7/site packages/pika/adapters/blocking_connection.py”,第54行,准备就绪
事件=self.poller.poll(self.poll\u超时)
错误:(4,‘系统调用中断’)

您的函数
sighup\u处理程序
在您的示例中不起任何作用。当我运行这个示例时,它只会打印“sighup received”。您是否缺少一些代码?打印“sighup received”后会出现上述异常,我无法复制该问题。你在运行哪个操作系统?你在运行最新版本的Pika(0.9.14)?我在使用suse 13.1和Pika 0.9.13。我将试用pika 0.9.14并回复0.9.14以解决此问题
import signal
import traceback
import pika
from time import sleep

received_signal = False

def signal_handler(signal, frame):
    global received_signal
    received_signal = True
    exit(1)

def sighup_handler(signal, frame):
    print "sighup received"


signal.signal(signal.SIGHUP, sighup_handler)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)

mq_server = "localhost"
mq_exchange = "my_exchange"
my_queue = "test_queue"

try:
    mq_connection = pika.BlockingConnection(pika.ConnectionParameters(mq_server))
except:

    exit(1)

mq_channel = mq_connection.channel()
mq_channel.exchange_declare(exchange=mq_exchange, durable=True)
mq_channel.queue_declare(queue=my_queue, durable=True)
mq_channel.queue_bind(my_queue, mq_exchange)
def callback(ch, method, properties, body):
    try:
        sleep(10)
        ch.basic_reject(delivery_tag=method.delivery_tag)

    except Exception as e:

        traceback.print_exc()  # region Message consumption

try:
    print ' [*] Waiting for messages. To exit press CTRL+C'
    mq_channel.basic_consume(callback, queue=my_queue)
    mq_channel.start_consuming()
except Exception as e:

    traceback.print_exc()

while True:
    pass
[*] Waiting for messages. To exit press CTRL+C
sighup received
Traceback (most recent call last):
  File "/run/media/bluto/04D0CF8ED0CF8500/Email_Projects/new_email_workers/testsigHup.py", line 47, in <module>
    mq_channel.start_consuming()
  File "/usr/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 814, in start_consuming
    self.connection.process_data_events()
  File "/usr/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 168, in process_data_events
    if self._handle_read():
  File "/usr/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 271, in _handle_read
    if self._read_poller.ready():
  File "/usr/lib/python2.7/site-packages/pika/adapters/blocking_connection.py", line 54, in ready
    events = self.poller.poll(self.poll_timeout)
error: (4, 'Interrupted system call')