2012-02-06 10 views
6

Estoy ejecutando Scrapyd y encuentro un problema extraño al lanzar 4 arañas al mismo tiempo.Scrap 's Scrapyd demasiado lento con las arañas de programación

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 

ya tengo estos ajustes para Scrapyd:

[scrapyd] 
max_proc = 10 

Por qué no está funcionando Scrapyd las arañas, al mismo tiempo, tan rápido como se programan?

Respuesta

7

He resuelto por la edición scrapyd/app.py en la línea 30.

cambiado timer = TimerService(5, poller.poll)-timer = TimerService(0.1, poller.poll)

EDIT: El comentario abajo por AliBZ con respecto a los valores de configuración es una mejor manera de cambiar la frecuencia de sondeo

+2

Según [scrapyd] (https://github.com/scrapy/scrapyd/blob/master/scrapyd/app.py), puede agregar 'poll_interval = 0.1' a su archivo de configuración scrapyd ubicado en'/etc/scrapyd/conf.d/000-default'. – AliBZ

4

Desde mi experiencia con scrapyd, no ejecuta una araña inmediatamente cuando programes una. Por lo general, espera un poco, hasta que la araña actual está en funcionamiento, luego comienza el siguiente proceso de araña (scrapy crawl).

Por lo tanto, scrapyd inicia los procesos uno por uno hasta que se alcanza el recuento de max_proc.

De tu registro veo que cada una de tus arañas se ejecuta aproximadamente 1 segundo. Creo que verás todas tus arañas funcionando si corren al menos 30 segundos.

+0

Sí; eso es lo que noté también. Implementé un subproceso. Llamada de liberación para raspar al instante, ya que los resultados se muestran al instante. Esperaba acelerar el programador de Scrapyd de alguna manera :) –

+0

Creo que es lógico lo que hace actualmente scrapyd. No quiere sobrecargar el sistema iniciando muchas arañas simultáneamente: no sabe si la araña que está programando para correr es pesada o liviana. Es por eso que ejecuta arañas una por una. Puedes estudiar el código scrapyd y tal vez encuentres algo para ajustar. Si encuentra la respuesta útil, por favor vote. – warvariuc

Cuestiones relacionadas