Quantcast
Channel: Active questions tagged zeromq - Stack Overflow
Viewing all articles
Browse latest Browse all 193

ZMQ socket gracefully termination in Python

$
0
0

I have the following ZMQ script

#!/usr/bin/env python2.6import signalimport sysimport zmqcontext = 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()

When I Ctrl-C, I get the following errors:

Traceback (most recent call last):  File "./nag.py", line 28, in <module>    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

Now, I thought I handled the closing of the socket, when receiving a termination signal from the user, pretty well, then why do I get this ugly messages. What am I missing.

Note I have done some search on Google and StackOverflow but haven't found anything that fixes this problem.

Thanks.

EDIT To anyone that has gotten this far -- user3666197 has suggested a very-good-and-robust way to handle termination or any exception during the execution.


Viewing all articles
Browse latest Browse all 193

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>