RabbitMQ pika.exceptions.ConnectionClosed
Я пытался отправить сообщение и получить сообщение, используя RabbitMQ. У меня нет опыта работы в информатике, термины, которые я использовал, не могли быть очень точными.
Я пытаюсь скопировать учебный файл: при отправке html-формы мой скрипт на python (cgi) отправляет сообщение в очередь
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)
message = PN
channel.basic_publish(exchange='',
routing_key='task_queue',
body=message,
properties=pika.BasicProperties(
delivery_mode = 2, # make message persistent
))
connection.close()
мой приемник работает:
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='task_queue', durable=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
def callback(ch, method, properties, body):
print(" [x] Received Project %r" % body)
#ch.basic_ack(delivery_tag = method.delivery_tag)
if not (os.path.isfile(js_path)):
print (' [*] ERROR files missing ')
#ch.basic_ack(delivery_tag = method.delivery_tag)
return
p= subprocess.Popen(run a subprocess here)
p.wait()
print (' [*] Temporary Files removed')
print(" [*] Waiting for messages. To exit press CTRL+C")
channel.basic_qos(prefetch_count=1)
channel.basic_consume(callback,queue='task_queue',no_ack=True)
channel.start_consuming()
Он управляет большую часть времени, но случайно падает со следующей ошибкой:
Трассировка (последний вызов был последним): файл «Receive5.py», строка 139, в channel.start_consuming () Файл «C: \ Python27 \ lib \ site-packages \ pika \ adapters \ blocking_connection.py», строка 1681, в start_consuming self.connection.process_data_events (time_limit = None) Файл "C: \ Python27 \ lib \ site-packages \ pika \ adapters \ blocking_connection.py", строка 647, в файле process_data_events self._flush_output (common_terminator), файл "C: \ Python" \ lib \ site-packages \ pika \ adapters \ blocking_connection.py ", строка 426, в _flush_output выдает исключения .ConnectionClosed () pika.exceptions.ConnectionClosed