Ejemplo n.º 1
0
 def __init__(self, process_handler=None):
     self.message_key_dict = {}
     self.message_config = DefaultConfig.MESSAGE_CONFIGS
     self.client_config = DefaultConfig.MQ_CLIENT_CONFIG
     self.select_connect = Select_Connnection(
         process_handler=process_handler)  #handler unfinished
     self.is_start = False
Ejemplo n.º 2
0
class AsynHandlerRepository(object):
    '''
    publish the message
    '''
    def __init__(self, process_handler=None):
        self.message_key_dict = {}
        self.message_config = DefaultConfig.MESSAGE_CONFIGS
        self.client_config = DefaultConfig.MQ_CLIENT_CONFIG
        self.select_connect = Select_Connnection(
            process_handler=process_handler)  #handler unfinished
        self.is_start = False

    def init_message(self, message_key, message_auth):
        '''
        add authentication to a message_key
        '''
        self.message_key_dict[message_key] = message_auth

    def process(self, message_key, message_body=None, **kw):
        '''
        publish a message use the message_inkey
        '''
        if not self.is_start:
            threading.Thread(target=self.select_connect.start).start()
            #             self.select_connection.start()
            #             self.select_connect.start()
            self.is_start = True
        message_body = AsynHandlerRepository._fill_message(
            message_key, message_body, **kw)
        message = {'message_key': message_key, 'message_body': message_body}
        self.select_connect.publish(message)
        #         print 'publish', message_key, message_body\
        return True

    def stop(self):
        self.select_connect.value.stop()

    @classmethod
    def _fill_message(cls, message_inkey, message_body=None, **kw):
        '''
        fill the message
        '''
        default_message_config = \
        DefaultConfig.MESSAGE_CONFIGS.get('__default_message_config')
        DefaultConfig.MESSAGE_CONFIGS.setdefault(\
                                         message_inkey, \
                                         default_message_config)
        if message_body is None:
            message_body = {}
        for key, value in kw.items():
            message_body[key] = value

        if len(message_body) == 0:
            raise MQError("empty message not allowed")
        return message_body
class AsynHandlerRepository(object):
    '''
    publish the message
    '''
    def __init__(self, process_handler=None):
        self.message_key_dict = {}
        self.message_config = DefaultConfig.MESSAGE_CONFIGS
        self.client_config = DefaultConfig.MQ_CLIENT_CONFIG
        self.select_connect = Select_Connnection(process_handler=process_handler) #handler unfinished
        self.is_start = False

    def init_message(self, message_key, message_auth):
        '''
        add authentication to a message_key
        '''
        self.message_key_dict[message_key] = message_auth

    def process(self, message_key, message_body=None, **kw):
        '''
        publish a message use the message_inkey
        '''
        if not self.is_start:
            threading.Thread(target=self.select_connect.start).start()
#             self.select_connection.start()
#             self.select_connect.start()
            self.is_start = True
        message_body = AsynHandlerRepository._fill_message(message_key, message_body, **kw)
        message = {'message_key': message_key,
                       'message_body': message_body}
        self.select_connect.publish(message)
#         print 'publish', message_key, message_body\
        return True    

    def stop(self):
        self.select_connect.value.stop()

    @classmethod
    def _fill_message(cls, message_inkey, message_body=None, **kw):
        '''
        fill the message
        '''
        default_message_config = \
        DefaultConfig.MESSAGE_CONFIGS.get('__default_message_config')
        DefaultConfig.MESSAGE_CONFIGS.setdefault(\
                                         message_inkey, \
                                         default_message_config)
        if message_body is None:
            message_body = {}
        for key, value in kw.items():
            message_body[key] = value

        if len(message_body) == 0:
            raise MQError("empty message not allowed")
        return message_body
class Test(unittest.TestCase):
    
    def process(self, message, body):
        print message, body

    def setUp(self):
        self.select_connection = Select_Connnection(process_handler=self.process)
        pass


    def tearDown(self):
        pass


    def testStart(self):
        
        pass
    
    def fun(self):
        message_key = 'test_message'
        for i in range(2000000):
            print i
            now = int(time.time())
            msg = {
                'id': now % (i + 1),
                'name': 'producer %s' % (now % 10),
                'phone': now,
                '__priority': (now % 3),
            }
            message = {'message_key': message_key,
                       'message_body': msg}
            self.select_connection.publish(message) 
            time.sleep(0.1)
        self.select_connection.stop()
    
    def testPublish(self):
        threading.Thread(target=self.fun).start()
        self.select_connection.start()
          
    def testStop(self):
#         self.select_connection.stop()
        pass
class Test(unittest.TestCase):
    def process(self, message, body):
        print message, body

    def setUp(self):
        self.select_connection = Select_Connnection(
            process_handler=self.process)
        pass

    def tearDown(self):
        pass

    def testStart(self):

        pass

    def fun(self):
        message_key = 'test_message'
        for i in range(2000000):
            print i
            now = int(time.time())
            msg = {
                'id': now % (i + 1),
                'name': 'producer %s' % (now % 10),
                'phone': now,
                '__priority': (now % 3),
            }
            message = {'message_key': message_key, 'message_body': msg}
            self.select_connection.publish(message)
            time.sleep(0.1)
        self.select_connection.stop()

    def testPublish(self):
        threading.Thread(target=self.fun).start()
        self.select_connection.start()

    def testStop(self):
        #         self.select_connection.stop()
        pass
 def __init__(self, process_handler=None):
     self.message_key_dict = {}
     self.message_config = DefaultConfig.MESSAGE_CONFIGS
     self.client_config = DefaultConfig.MQ_CLIENT_CONFIG
     self.select_connect = Select_Connnection(process_handler=process_handler) #handler unfinished
     self.is_start = False
 def setUp(self):
     self.select_connection = Select_Connnection(
         process_handler=self.process)
     pass
 def setUp(self):
     self.select_connection = Select_Connnection(process_handler=self.process)
     pass