Ejemplo n.º 1
0
def match_players():
    queue = RedisQueue("all_players")
    _redis = StrictRedis(**REDIS_QUEUE_KWARGS)
    while True:
        if queue.qsize() < 2:
            time.sleep(0.5)
            continue

        left, right = queue.get(), queue.get()
        game_id = str(uuid4())
        _redis.publish(left, game_id)
        _redis.publish(right, game_id)
Ejemplo n.º 2
0
 def __init__(self,
              name,
              queue_name,
              process_number=1,
              redis_host=None,
              redis_port=None):
     """
     消费者类构造器
     :param name:  (str) 名称
     :param queue_name: (str) redis队列名称
     :param redis_host: (str) redis 服务器域名
     :param redis_port: (int) 端口号
     :return:
     """
     self.process_number = process_number
     if not os.path.exists("./log"):
         os.makedirs("./log")
     self.customer_logging = get_logger("./log/%s" % name +
                                        "_%d" % self.process_number)
     self.customer_name = name
     self.last_file = "%s_last_key_%d.txt" % (self.customer_name,
                                              self.process_number)
     self.customer_queue_name = queue_name
     self.customer_redis_host = redis_host
     self.customer_redis_port = redis_port
     self.customer_queue_conn = RedisQueue.getredisQueuev2(
         queue_name, redis_host)
Ejemplo n.º 3
0
 def __init__(self,
              name,
              queue_names,
              process_number=1,
              redis_host=None,
              redis_port=None):
     """
     生产者类构造器
     :param name:  (str) 生产者名称
     :param queue_names: (str) redis队列名称列表
     :param redis_host: (str) redis 服务器域名
     :param redis_port: (int) redis服务器端口号
     :return:
     """
     self.process_number = process_number
     self.product_name = name
     if not os.path.exists("./log"):
         os.makedirs("./log")
     self.product_logging = get_logger("./log/%s" % name +
                                       "_%d" % self.process_number)
     self.product_queue_names = queue_names
     self.product_redis_host = redis_host
     self.product_redis_port = redis_port
     self.product_conns = list()
     self.bloomfilter_mode = False
     for queue_name in queue_names:
         queue_conn = RedisQueue.getredisQueuev2(queue_name, redis_host,
                                                 redis_port)
         self.product_conns.append(queue_conn)
Ejemplo n.º 4
0
 def append_bottom(self, keywords_dict):
     while True:
         try:
             keywords_str = json.dumps(keywords_dict)
             self.key_queue_conn.put(keywords_str)
             return
         except Exception as e:
             print u'重新插入redis队尾异常%s' % e
             time.sleep(5)
             try:
                 #重新连接
                 self.company_name_queue = RedisQueue.getredisQueue("%s:keywords" % self.key_queue_name,redis_host= self.redis_host,redis_port=self.redis_port)
                 continue
             except Exception as e1:
                 self.logging.error(u"连接Redis队列失败。错误信息:%s" % e1)
                 time.sleep(600)
             continue
def main():
    value = u'后端开发,移动互联网,成都'
    value_list = value.split(',')
    value_dict = {}
    if len(value_list) == 3:
        value_dict['key_words'] = value_list[0]
        value_dict['hy'] = value_list[1]
        value_dict['city'] = value_list[2]
    else:
        sys.exit(1)
    while True:
        try:
            value_dict_str = json.dumps(value_dict)
            queue = RedisQueue.getredisQueuev2("%s:keywords"% queue_list[0],config.redis_host,config.redis_port, redis_password = None)
            queue.insert(value_dict_str)
            break
        except Exception as e:
            print u'insert redis failed! %s' % e
Ejemplo n.º 6
0
 def pop_key_words(self):
     while True:
         try:
             keywords_dict = self.key_queue_conn.get(timeout=60)
             if keywords_dict is None:
                 raise Exception(u'队列中没有内容返回')
             keywords_dict = keywords_dict.strip()
             if len(keywords_dict) < 1:
                 raise Exception(u'队列中数据异常')
             return keywords_dict
         except Exception as e:
             print u'从队列中%s取key,value对异常 %s' % (self.key_queue_name, e)
             time.sleep(60*5)
             try:
                 #重新连接
                 self.company_name_queue = RedisQueue.getredisQueue("%s:keywords" % self.key_queue_name,redis_host= self.redis_host,redis_port=self.redis_port)
                 continue
             except Exception as e1:
                 self.logging.error(u"连接Redis队列失败。错误信息:%s" % e1)
                 time.sleep(600)
             continue
Ejemplo n.º 7
0
 def __init__(self, key_queue_name, name,queue_name,process_number=1,redis_host=None,redis_port=None):
     Producer.__init__(self,name, queue_name, process_number, redis_host = redis_host, redis_port = redis_port)
     self.key_queue_name = key_queue_name
     self.key_queue_conn = RedisQueue.getredisQueue("%s:keywords" % key_queue_name, redis_host = redis_host,redis_port = redis_port, redis_password = None)
     self.redis_host = redis_host
     self.redis_port = redis_port