9

Scrapydを実行していますが、4つのスパイダーを同時に起動すると奇妙な問題が発生します。

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 

私はすでにScrapydの次の設定を持っています:

[scrapyd]
max_proc = 10

Scrapydがスケジュールどおりにスパイダーを同時に実行しないのはなぜですか?

4

2 に答える 2

9

30行目のscrapyd/app.pyを編集して解決しました。

に変更timer = TimerService(5, poller.poll)されました timer = TimerService(0.1, poller.poll)

編集:構成設定に関するAliBZによる以下のコメントは、ポーリング頻度を変更するためのより良い方法です。

于 2012-02-13T16:03:17.327 に答える
5

私のscrapydの経験から、スケジュールしたときにすぐにスパイダーを実行することはありません。通常、現在のスパイダーが稼働するまで少し待機してから、次のスパイダープロセスを開始します(scrapy crawl)。

したがって、scrapydは、max_procカウントに達するまでプロセスを1つずつ起動します。

あなたのログから、私はあなたのクモのそれぞれが約1秒走っていることを確認します。少なくとも30秒走れば、すべてのクモが走っているのがわかると思います。

于 2012-02-06T18:11:58.823 に答える