Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

स्क्रैपी-रेडिस प्रोग्राम अपने आप बंद नहीं होता है

scrapy-redis रेडिस कतार में हमेशा नए यूआरएल को धक्का देने की प्रतीक्षा करेगा। जब कतार खाली होती है, तो मकड़ी निष्क्रिय में चली जाती है राज्य और नए यूआरएल की प्रतीक्षा कर रहा है। कतार खाली होने पर मैं अपनी मकड़ी को बंद कर देता था।

जब मकड़ी निष्क्रिय में हो (जब यह कुछ नहीं करता है), मैं जांचता हूं कि रेडिस कतार में अभी भी कुछ बचा है या नहीं। यदि नहीं, तो मैं close_spider के साथ स्पाइडर को बंद कर देता हूं . निम्नलिखित कोड spider में स्थित है कक्षा:

@classmethod
def from_crawler(cls, crawler, *args, **kwargs):
    from_crawler = super(SerpSpider, cls).from_crawler
    spider = from_crawler(crawler, *args, **kwargs)
    crawler.signals.connect(spider.idle, signal=scrapy.signals.spider_idle)
    return spider


def idle(self):
    if self.q.llen(self.redis_key) <= 0:
        self.crawler.engine.close_spider(self, reason='finished')


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. क्या Stackexchange.Redis की आग और गारंटी वितरण को भूल जाता है?

  2. MacOS 10.12 . पर दो डॉकर कंटेनरों के बीच संचार

  3. Laravel 4:अपरिभाषित विधि पर कॉल करें Redis::connection()

  4. StackExchange.Redis के साथ बुनियादी घड़ी कैसे करें?

  5. एक्सप्रेस ऐप से डिबगिंग कैसे निकालें?