Example #1
0
    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()
Example #2
0
	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()