Грамотное завершение сокета ZMQ в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Грамотное завершение сокета ZMQ в Python

Сообщение Anonymous »

У меня есть следующий скрипт ZMQ

Код: Выделить всё

#!/usr/bin/env python2.6

import signal
import sys
import zmq

context = zmq.Context()
socket = context.socket(zmq.SUB)

def signal_term_handler(signal, fname):
socket.close()
sys.exit(0)

def main():
signal.signal(signal.SIGTERM, signal_term_handler)

socket.connect('tcp://16.160.163.27:8888')
socket.setsockopt(zmq.SUBSCRIBE, '')
print 'Waiting for a message'

while True:
(event, params) = socket.recv().split()
# ... doing something with that data ...

if __name__ == '__main__':
main()
Когда я нажимаю Ctrl-C, я получаю следующие ошибки:

Код: Выделить всё

Traceback (most recent call last):
File "./nag.py", line 28, in 
main()
File "./nag.py", line 24, in main
(event, params) = socket.recv().split()
File "socket.pyx", line 628, in zmq.backend.cython.socket.Socket.recv (zmq/backend/cython/socket.c:5616)
File "socket.pyx", line 662, in zmq.backend.cython.socket.Socket.recv (zmq/backend/cython/socket.c:5436)
File "socket.pyx", line 139, in zmq.backend.cython.socket._recv_copy (zmq/backend/cython/socket.c:1771)
File "checkrc.pxd", line 11, in zmq.backend.cython.checkrc._check_rc (zmq/backend/cython/socket.c:5863)
KeyboardInterrupt
Я думал, что справился с закрытием сокета при получении сигнала завершения от пользователя, довольно хорошо, тогда почему я получаю эти уродливые сообщения. Чего мне не хватает.

Примечание. Я поискал в Google и StackOverflow, но не нашел ничего, что могло бы решить эту проблему. p>

Спасибо.

РЕДАКТИРОВАНИЕ Всем, кто зашел так далеко, предложил пользователь 3666197. очень хороший и надежный способ обработки завершения или любого исключения во время исполнение.

Подробнее здесь: https://stackoverflow.com/questions/262 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»