2012-02-06 19 views
6

Używam Scrapyd i napotykam dziwny problem podczas uruchamiania 4 pająków w tym samym czasie.Scrapyd Scrapyd zbyt wolno z harmonogramem pająków

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 

mam już tych ustawień Scrapyd:

[scrapyd] 
max_proc = 10 

Dlaczego nie Scrapyd działa pająki w tym samym czasie, tak szybko, jak są one zaplanowane?

Odpowiedz

7

mam rozwiązać go poprzez edycję scrapyd/app.py na linii 30.

Zmieniono timer = TimerService(5, poller.poll) do timer = TimerService(0.1, poller.poll)

EDIT: Komentarz poniżej AliBZ dotyczące ustawień konfiguracyjnych jest lepszym sposobem na zmianę częstotliwość odpytywania.

+2

Według [scrapyd] (https://github.com/scrapy/scrapyd/blob/master/scrapyd/app.py), możesz dodać 'poll_interval = 0.1' do pliku konfiguracyjnego złomu znajdującego się w'/etc/scrapyd/conf.d/000-default'. – AliBZ

4

Z mojego doświadczenia ze scrapydem, nie uruchamia natychmiast pająka podczas planowania. Zwykle czeka trochę, aż bieżący pająk się uruchomi, a następnie rozpocznie następny proces pająka (scrapy crawl).

Tak, scrapyd uruchamia procesy jeden po drugim aż do osiągnięcia max_proc licznika.

Z logu widzę, że każdy z pająków działa około 1 sekundy. Myślę, że zobaczysz wszystkie swoje pająki, jeśli będą działać przez co najmniej 30 sekund.

+0

Tak; to też zauważyłem. Zaimplementowałem wywołanie podprocesu.Popen, aby natychmiast skrobać, ponieważ wyniki będą natychmiast wyświetlane. Miałem nadzieję przyspieszyć harmonogram Scrapyda :) –

+0

Myślę, że to jest logiczne, co obecnie robi scrapyd. Nie chce przeciążać systemu, uruchamiając jednocześnie wiele pająków - nie wie, czy pająk, którego planujesz, jest ciężki czy lekki. Dlatego uruchamia pająki jeden po drugim. Możesz studiować kod złomu, a może znajdziesz coś do poprawienia. Jeśli uznasz, że odpowiedź jest przydatna, wykonaj procedurę. – warvariuc

Powiązane problemy