0

Merci d'avance. Je suis nouveau en multitraitement. J'ai créé un processus par le biais duquel je veux consommer les données par le biais de Rabbit MQueue en même temps mais il exécute un processus à la fois.consommateur de lapin multiprocess

def start_consum(queue_name): 
    channel.basic_consume(func, queue=queue_name) 
    channel.start_consuming() 

def process_start(number): 
    from multiprocessing import Process 
    events = ["ev1","ev2","ev3"] 
    for process in range(number): 
     for event in events: 
      proc = Process(target= start_consum(event)) 
      proc.daemon = True 
      proc.start() 


process_start(10) 

Dans le code ci-dessus, il commence à consommer le premier événement, puis il commence le deuxième.

Répondre

0

Vous pouvez démarrer un thread pour cela.

class Threaded_worker(threading.Thread): 
    def __init__(self): 
     threading.Thread.__init__(self) 
     self.credentials = pika.PlainCredentials('', '') 
     self.connection = pika.BlockingConnection(pika.ConnectionParameters(credentials=self.credentials,host=)) 
     self.channel = self.connection.channel() 
     self.channel.basic_qos(prefetch_count=1) 
     events = ["ev1","ev2","ev3"] 
     for event in events: 
      self.channel.basic_consume(func, queue=event)    

    def run(self): 
     print 'start consuming' 
     self.channel.start_consuming() 

    def thread_start(numberofthreads):     
     for _ in range(numberofthreads): 
      td = Threaded_worker() 
      td.setDaemon(True) 
      td.start() 
+0

merci @shashank – John