2017-08-02 6 views
0

Ich habe Scrapy und Scrapy-Splash auf einem AWS Ubuntu-Server eingerichtet. Es funktioniert für eine Weile gut, aber nach ein paar Stunden bekomme ich Fehlermeldungen wie diese;Scrapy + Splash (Docker) Ausgabe

Traceback (most recent call last): 
    File "/home/ubuntu/.local/lib/python3.5/site- 
packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks 
result = result.throwExceptionIntoGenerator(g) 
    File "/home/ubuntu/.local/lib/python3.5/site- 
packages/twisted/python/failure.py", line 393, in throwExceptionIntoGe 
nerator 
    return g.throw(self.type, self.value, self.tb) 
    File "/home/ubuntu/.local/lib/python3.5/site- 
packages/scrapy/core/downloader/middleware.py", line 43, in process_re 
quest 
defer.returnValue((yield download_func(request=request,spider=spider))) 
twisted.internet.error.ConnectionRefusedError: Connection was refused by 
other side: 111: Connection refused. 

Ich werde feststellen, dass der Splash-Prozess in Docker entweder beendet wurde oder nicht mehr reagiert.

Ich habe den Splash-Prozess mit ausgeführt;

sudo docker run -p 8050:8050 scrapinghub/splash 

gemäß der scrapy-splash Anweisungen.

Ich habe versucht, den Prozess in einer tmux-Shell zu starten, um sicherzustellen, dass die SSH-Verbindung den SPLOH-Prozess nicht stört, aber kein Glück.

Gedanken?

Antwort

1

Sie sollten den Container mit den Optionen --restart und -d ausführen. Informationen zum Ausführen von Splash in der Produktion finden Sie unter documentation.

+0

Danke. Ich bin selbst über diese Idee gestolpert und habe gegoogelt, aber das ist eine großartige Ressource. Ich werde nur für die nächste Person hinzufügen ... Sie können sehen, warum Ihre Docker-Prozesse mit "Docker ps -a" fehlgeschlagen sind, und beachten Sie, dass Exit-Code 137 mit Speicherüberlastung verbunden zu sein scheint. Und was @Tomas vorgeschlagen hat, ist docker automatisch den Prozess neu zu starten, wenn es aufgrund mangelndem Speicher fehlschlägt. – Ike