def start(self):
self.pid = os.getpid()
context = zmq.Context.instance()
zmq_sock = context.socket(zmq.DEALER)
zmq_sock.linger = 1000
zmq_sock.identity = bytes(str(self.pid), 'ascii')
if self.port == 0:
self.zmq_port = zmq_sock.bind_to_random_port('tcp://{0}'.format(self.ip))
else:
self.zmq_port = zmq_sock.bind('tcp://{0}:{1}'.format(self.ip, self.port))
self.zmq_stream = zmqstream.ZMQStream(zmq_sock)
self.zmq_stream.on_recv(self.request_handler)
self.log_format = (u'%(color)s[%(levelname)1.1s %(asctime)s.%(msecs).03d '
u'%(name)s-{0}]%(end_color)s %(message)s').format(self.pid)
self.log.info('start %s', self)
self.write_server_info_file()
atexit.register(self.remove_server_info_file)
self.io_loop = ioloop.IOLoop.current()
try:
self.io_loop.start()
except KeyboardInterrupt:
self.log.info('JobServer interrupted...')
finally:
self.remove_server_info_file()
评论列表
文章目录