0

미리 감사드립니다. 다중 처리에서 새로운 점이 있습니다. 나는 토끼풀 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