2012-02-06 23 views
6

Scrapyd'i çalıştırıyorum ve aynı anda 4 örümcek başlatırken garip bir sorunla karşılaşıyorum.Scrapy 'Scrapyd örümcekler planlaması ile çok yavaş

2012-02-06 15:27:17+0100 [HTTPChannel,0,127.0.0.1] 127.0.0.1 - - [06/Feb/2012:14:27:16 +0000] "POST /schedule.json HTTP/1.1" 200 62 "-" "python-requests/0.10.1" 
2012-02-06 15:27:17+0100 [HTTPChannel,1,127.0.0.1] 127.0.0.1 - - [06/Feb/2012:14:27:16 +0000] "POST /schedule.json HTTP/1.1" 200 62 "-" "python-requests/0.10.1" 
2012-02-06 15:27:17+0100 [HTTPChannel,2,127.0.0.1] 127.0.0.1 - - [06/Feb/2012:14:27:16 +0000] "POST /schedule.json HTTP/1.1" 200 62 "-" "python-requests/0.10.1" 
2012-02-06 15:27:17+0100 [HTTPChannel,3,127.0.0.1] 127.0.0.1 - - [06/Feb/2012:14:27:16 +0000] "POST /schedule.json HTTP/1.1" 200 62 "-" "python-requests/0.10.1" 
2012-02-06 15:27:18+0100 [Launcher] Process started: project='thz' spider='spider_1' job='abb6b62650ce11e19123c8bcc8cc6233' pid=2545 
2012-02-06 15:27:19+0100 [Launcher] Process finished: project='thz' spider='spider_1' job='abb6b62650ce11e19123c8bcc8cc6233' pid=2545 
2012-02-06 15:27:23+0100 [Launcher] Process started: project='thz' spider='spider_2' job='abb72f8e50ce11e19123c8bcc8cc6233' pid=2546 
2012-02-06 15:27:24+0100 [Launcher] Process finished: project='thz' spider='spider_2' job='abb72f8e50ce11e19123c8bcc8cc6233' pid=2546 
2012-02-06 15:27:28+0100 [Launcher] Process started: project='thz' spider='spider_3' job='abb76f6250ce11e19123c8bcc8cc6233' pid=2547 
2012-02-06 15:27:29+0100 [Launcher] Process finished: project='thz' spider='spider_3' job='abb76f6250ce11e19123c8bcc8cc6233' pid=2547 
2012-02-06 15:27:33+0100 [Launcher] Process started: project='thz' spider='spider_4' job='abb7bb8e50ce11e19123c8bcc8cc6233' pid=2549 
2012-02-06 15:27:35+0100 [Launcher] Process finished: project='thz' spider='spider_4' job='abb7bb8e50ce11e19123c8bcc8cc6233' pid=2549 
Zaten Scrapyd için bu ayarlara sahip

: onlar planlanan olarak

[scrapyd] 
max_proc = 10 

Neden çabuk, aynı zamanda örümcekler çalışan Scrapyd değil?

cevap

7
Ben timer = TimerService(0.1, poller.poll) için timer = TimerService(5, poller.poll) değiştirildi hat 30

üzerinde düzenleme scrapyd/app.py bunu çözdük

DÜZENLEME: yapılandırma ayarlarını ilişkin AliBZ tarafından aşağıdaki yorum değiştirmek için daha iyi bir yoldur yoklama sıklığı.

+2

[scrapyd] 'ye göre (https://github.com/scrapy/scrapyd/blob/master/scrapyd/app.py) '/ etc/scrapyd adresinde bulunan scrapyd config dosyasına' poll_interval = 0.1' ekleyebilirsiniz./conf.d/000-default'. – AliBZ

4

Scrapyd'le olan deneyimimden, siz bir programı planlarken hemen bir örümcek çalıştırmıyor. Mevcut örümcek durana kadar genellikle biraz bekler, sonra bir sonraki örümcek işlemine başlar (scrapy crawl).

Böylece, scrapyd, max_proc sayımına ulaşılana kadar işlemleri tek tek başlatır.

Günlüğünüzden örümceklerin her birinin yaklaşık 1 saniye çalıştığını görüyorum. Sanırım tüm örümcekler en az 30 saniye koşacaklarsa koşacaklar.

+0

Yep; Ben de fark ettim. Sonuçların anında görüntüleneceğinden, bir alt işlem gerçekleştirdim.Popen çağrısı anında kazımak için. Scrapyd programlayıcısını bir şekilde hızlandırmayı umuyordum :) –

+0

Sanırım şu anda ne yapıyorsa, mantıklı. Birçok örümcek ile aynı anda başlayan sisteme aşırı yüklenmek istemez - koşmak için planladığınız örümcek ağır mı yoksa hafif mi olduğunu bilmiyor. Bu yüzden örümcekleri teker teker çalıştırıyor. Scrapyd kodunu okuyabilir ve belki de çimdiklemek için bir şeyler bulabilirsiniz. Cevabı faydalı bulursanız lütfen çekin. – warvariuc