0

Заранее спасибо. Я новичок в многопроцессорной обработке. Я создал процесс, через который я хочу использовать данные через Rabbit MQueue одновременно, но он запускает один процесс за раз.многопроцессорный потребитель-кролик

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) 

В приведенном выше коде он начинает потреблять первое событие, а затем начинает второй.

ответ

0

Вы можете создать тему для этого.

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

спасибо @shashank – John

Смежные вопросы