Exemplo n.º 1
0
class Capturator(Thread):

    def __init__(self, config):
        Thread.__init__(self)
        self.config = config
        self.store = None
        self.cli = Client(config['host'],self.config['port'])
        self.start()
                
    def run(self):
        while True:
            data = self.cli.recv()
            if(data is None):
                self.cli = Client(self.config['host'], self.config['port'])
            else:
                num_cont = Cont().get_cont(self.config['counter'])
                data = data.decode('utf-8').replace('\n','') + '\n'
                Log().save_line(self.config['file_name'], 'acum', data)
                regs_store = {"id": num_cont, "data": data} # creando el diccionario con los datos recibidos

                while self.store == None:
                    print("Capture:\tConectando a MongoDB")
                    self.store = DB().connect(self.config['db_host'], self.config['db_name'], self.config['client_name'])
                    time.sleep(1)

                try:
                    self.store.insert(regs_store)
                    print('Capture:\t['+self.config['client_name']+'] -> '+num_cont + ' - ' +data)
                except:
                    print('Capture:\tError en MongoDB, reintentando...')
                    time.sleep(0)