def __init__(self, zmq_host, zmq_work_port, zmq_results_port, worker_id, max_retries, profile_count=0, concurrency=256, batch_size=1): work_endpoint = 'tcp://%s:%d' % (zmq_host, zmq_work_port) results_endpoint = 'tcp://%s:%d' % (zmq_host, zmq_results_port) ipv6 = is_ipv6(zmq_host) self.worker_id = worker_id self.max_retries = max_retries self.profile_count = profile_count self.batch_size = batch_size raise_file_descriptor_limit() self.concurrency = concurrency self.conn_pools_lock = gevent.coros.Semaphore(1) self.conn_pools = {} # hashed by storage_url self.token_data = {} self.token_data_lock = gevent.coros.Semaphore(1) self.context = zmq.Context() self.work_pull = self.context.socket(zmq.PULL) self.work_pull.ipv6 = ipv6 self.work_pull.connect(work_endpoint) self.results_push = self.context.socket(zmq.PUSH) self.results_push.ipv6 = ipv6 self.results_push.connect(results_endpoint) self.result_queue = gevent.queue.Queue()
def __init__(self, zmq_bind_ip=None, zmq_work_port=None, zmq_results_port=11300, quiet=False, connect_timeout=None, network_timeout=None): if zmq_bind_ip is not None and zmq_work_port is not None: work_endpoint = 'tcp://%s:%d' % (zmq_bind_ip, zmq_work_port) results_endpoint = 'tcp://%s:%d' % (zmq_bind_ip, zmq_results_port) ipv6 = is_ipv6(zmq_bind_ip) self.context = zmq.Context() self.work_push = self.context.socket(zmq.PUSH) self.work_push.ipv6 = ipv6 self.work_push.bind(work_endpoint) self.results_pull = self.context.socket(zmq.PULL) self.results_pull.ipv6 = ipv6 self.results_pull.bind(results_endpoint) self.connect_timeout = connect_timeout self.network_timeout = network_timeout self.quiet = quiet