class ProcessConsumer:
    def __init__(self, prod_host, prod_queue, cons_host, cons_queue, callback, *args, **kwargs):
        #super(ProcessConsumer, self).__init__(*args, **kwargs)
        self.name = kwargs["name"]
        self.consumer = ControlProccess(prod_host="localhost", prod_queue="_QUEUE_END", cons_host="localhost",
                                        cons_queue="_QUEUE_PROCCESS", callback=callback, name=self.name)

    def _stop(self):
        print("Parando a thead:")

    def run(self):
        print("Esperando Mensagem! i am thread: %r" % self.name)
        self.consumer.start_consuming()
Ejemplo n.º 2
0
class TheadConsumer(threading.Thread):
    def __init__(self, prod_host, prod_queue, cons_host, cons_queue, callback, *args, **kwargs):
        super(TheadConsumer, self).__init__(*args, **kwargs)

        self.consumer = ControlProccess(prod_host="localhost", prod_queue="_QUEUE_END", cons_host="localhost",
                                        cons_queue="_QUEUE_PROCCESS", callback=callback, name=self.name)

    def _stop(self):
        print("Parando a thead:")

    def run(self):
        print("Esperando Mensagem! i am thread: %r" % self.name)
        try:
            self.consumer.start_consuming()
        except ConnectionClosed as c:
            print("ConnectionResetError huahuahuiahuia")
            self.run()  # SE DER ERRO DE CONEXÃO RECONECTA-SE
Ejemplo n.º 3
0
def start_producer_bairros():
    producer = ControlProccess(prod_host="localhost",
                               prod_queue="_QUEUE_PROCCESS",
                               cons_host="localhost",
                               cons_queue="_QUEUE_END",
                               callback=callback_end_control)
    producer.start_producer()

    inicio = datetime.datetime.now()
    #files = glob.glob(FILE_PATH)

    #for file_name in files:
    mapa_linhas = {"linhas": [], "lote": 0}
    global lote
    with codecs.open(FILE_PATH, "r", encoding='iso-8859-1',
                     errors='ignore') as f:
        for ind, linha in enumerate(f.readlines()):
            if ind == 0:
                continue

            # cada elemento em linhas é uma linha do arquivo
            mapa_linhas["linhas"].append(linha)
            # enviando de 500 em 500 a fila
            if (ind + 1) % 500 == 0:
                lote += 1
                mapa_linhas["lote"] = lote
                producer.send_menssage(msg=json.dumps(mapa_linhas))
                mapa_linhas["linhas"] = []  # reinicializando a lista de linhas
        else:
            # garantindo que não fique linhas sem ser enviadas, pois pode ser que no final do processamento de um arquivo
            # mapa_linhas["linhas"] contenha um número menor que 500 linhas
            if mapa_linhas["linhas"]:
                lote += 1
                mapa_linhas["lote"] = lote
                producer.send_menssage(msg=json.dumps(mapa_linhas))
                mapa_linhas["linhas"] = []  # reinicializando a lista de linhas

    print("INICIO DO PROCESSAMENTO DE ENVIO: {}".format(inicio))
    print("FIM DO PROCESSAMENTO DE ENVIO: {}".format(datetime.datetime.now()))
    print("TOTAL LOTES: %d" % lote)

    producer.stop_producer()
    producer.start_consuming(
    )  #startando o consumidor do produtor para controlar o termino dos processamentos
def start_producer_bairros():
    producer = ControlProccess(prod_host="localhost", prod_queue="_QUEUE_PROCCESS", cons_host="localhost",
                               cons_queue="_QUEUE_END", callback=callback_end_control)
    producer.start_producer()

    inicio = datetime.datetime.now()
    #files = glob.glob(FILE_PATH)

    #for file_name in files:
    mapa_linhas = {"linhas": [], "lote": 0}
    global lote
    with codecs.open(FILE_PATH, "r", encoding='iso-8859-1', errors='ignore') as f:
        for ind, linha in enumerate(f.readlines()):
            if ind == 0:
                continue

            # cada elemento em linhas é uma linha do arquivo
            mapa_linhas["linhas"].append(linha)
            # enviando de 500 em 500 a fila
            if (ind+1) % 500 == 0:
                lote += 1
                mapa_linhas["lote"] = lote
                producer.send_menssage(msg=json.dumps(mapa_linhas))
                mapa_linhas["linhas"] = []  # reinicializando a lista de linhas
        else:
            # garantindo que não fique linhas sem ser enviadas, pois pode ser que no final do processamento de um arquivo
            # mapa_linhas["linhas"] contenha um número menor que 500 linhas
            if mapa_linhas["linhas"]:
                lote += 1
                mapa_linhas["lote"] = lote
                producer.send_menssage(msg=json.dumps(mapa_linhas))
                mapa_linhas["linhas"] = []  # reinicializando a lista de linhas

    print("INICIO DO PROCESSAMENTO DE ENVIO: {}".format(inicio))
    print("FIM DO PROCESSAMENTO DE ENVIO: {}".format(datetime.datetime.now()))
    print("TOTAL LOTES: %d" % lote)

    producer.stop_producer()
    producer.start_consuming() #startando o consumidor do produtor para controlar o termino dos processamentos
Ejemplo n.º 5
0
    def __init__(self, prod_host, prod_queue, cons_host, cons_queue, callback, *args, **kwargs):

        self.name = kwargs["name"]

        self.consumer = ControlProccess(prod_host="localhost", prod_queue="_QUEUE_END", cons_host="localhost",
                                        cons_queue="_QUEUE_PROCCESS", callback=callback, name=self.name)