示例#1
0
文件: actor.py 项目: bright-pan/ec2
 def _run(self):
     self.running = True
     _retry = self._RetryLimit
     
     event.send( signal=signals.INIT, sender=self )        
     while self.running:
         gevent.sleep(0)
         try:
             msg = self.recv()
             if not msg: continue
             #logging.debug('!>>> recv|%s'%(msg,))
             event.send( signal=signals.RECV, sender=self, message=msg )        
         except WarningErr, e:
             logging.warning(e)
         except Exception ,e:
             logging.warning(str(e))
             if self.debug:
                 traceback.print_exc()
                 logging.warning('process fail: retry|%s'%self.retry)
             
             _retry -=1
             if _retry<0:   break    
             gevent.sleep(self._SleepLimit)
             event.send( signal=signals.INIT, sender=self )        
             continue
示例#2
0
 def parse(self, response):
     event.send(signal=signals.RESPONSE, sender=self, response=response)
示例#3
0
 def fire_init(self):
     event.send(signal=signals.INIT,sender=self)
示例#4
0
 def fire_stop(self):
     event.send(signal=signals.STOP,sender=self)
示例#5
0
 def fire_recv(self):
     event.send(signal=signals.RECV,sender=self, message='hello')
示例#6
0
 def fire_init(self):
     event.send(signal=signals.INIT, sender=self)
示例#7
0
 def fire_stop(self):
     event.send(signal=signals.STOP, sender=self)
示例#8
0
 def fire_recv(self):
     event.send(signal=signals.RECV, sender=self, message='hello')
示例#9
0
文件: spider.py 项目: Big-Data/ec2
 def parse(self, response):
     event.send( 
         signal=signals.RESPONSE,
         sender=self,
         response = response
     )            
示例#10
0
文件: actor.py 项目: bright-pan/ec2
                logging.warning(str(e))
                if self.debug:
                    traceback.print_exc()
                    logging.warning('process fail: retry|%s'%self.retry)
                
                _retry -=1
                if _retry<0:   break    
                gevent.sleep(self._SleepLimit)
                event.send( signal=signals.INIT, sender=self )        
                continue
                            
            #-----------------------    
            _retry = self._RetryLimit
            

        event.send( signal=signals.STOP, sender=self )        


class QueuePuller(Actor):

    def __init__(self, retry=0,  debug=False):
        Actor.__init__(self, retry, debug)
        self._inbox = gevent.queue.Queue()

    def recv(self):
        return self._inbox.get()

    def send(self,message):
        return self._inbox.put(message)