Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Program scrapy-redis nie zamyka się automatycznie

scrapy-redis zawsze będzie czekać na umieszczenie nowych adresów URL w kolejce redis. Gdy kolejka jest pusta, pająk przechodzi bezczynny stan i czeka na nowe adresy URL. Właśnie tego używałem do zamykania mojego pająka, gdy kolejka jest pusta.

Gdy pająk jest bezczynny (gdy nic nie robi), sprawdzam, czy w kolejce redis jest jeszcze coś. Jeśli nie, zamykam pająka za pomocą close_spider . Poniższy kod znajduje się w spider klasa:

@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. Odzyskaj po zerwaniu połączenia w redis pub/sub

  2. Przechowywanie wartości hget redis w zmiennej w nodejs

  3. phpredis na Windows 7 64bit xampp

  4. Redis — połącz się ze zdalnym serwerem

  5. Powiadomienie o wygaśnięciu klucza Redis w Jedis