def __init__(self, config, processor_class): if config.DEBUG: from threading import Thread as Process else: from multiprocessing import Process self._config = config self._clients = {} self._idle_workers = SimpleQueue() self._max_queue_size = getattr(config, 'TCP_MAX_QUEUE_SIZE', None) self._running_workers = SimpleQueue() self._waiting_tasks = SimpleQueue(self._max_queue_size) self._worker_processes = [] max_buffer_size = getattr(config, 'TCP_MAX_BUFFER_SIZE', None) self._worker_server = CallbackTcpServer( on_connect=self._on_worker_connect, max_buffer_size=max_buffer_size) self._worker_server.listen(**config.WORK_ENDPOINT) self._connection_server = CallbackTcpServer( on_connect=self._on_client_connect, max_buffer_size=max_buffer_size) for listen_port in config.LISTEN_ENDPOINTS: self._connection_server.listen(**listen_port) for i in xrange(0, config.WORKER_COUNT): processor = processor_class(i, config) p = Process(target=processor.run) p.processor = processor self._worker_processes.append(p) p.start()
def __init__(self, config, processor_class): if config.DEBUG: from threading import Thread as Process else: from multiprocessing import Process self._config = config self._clients = {} self._idle_workers = SimpleQueue() self._max_queue_size = getattr(config, 'TCP_MAX_QUEUE_SIZE', None) self._running_workers = SimpleQueue() self._waiting_tasks = SimpleQueue(self._max_queue_size) self._worker_processes = [] max_buffer_size = getattr(config, 'TCP_MAX_BUFFER_SIZE', None) self._worker_server = CallbackTcpServer(on_connect=self._on_worker_connect, max_buffer_size=max_buffer_size) self._worker_server.listen(**config.WORK_ENDPOINT) self._connection_server = CallbackTcpServer(on_connect=self._on_client_connect, max_buffer_size=max_buffer_size) for listen_port in config.LISTEN_ENDPOINTS: self._connection_server.listen(**listen_port) for i in xrange(0, config.WORKER_COUNT): processor = processor_class(i, config) p = Process(target=processor.run) p.processor = processor self._worker_processes.append(p) p.start()