2017-08-02 110 views
0

我在AWS Ubuntu服務器上設置了scrapy和scrapy-splash。它在一段時間內工作正常,但幾個小時後,我會開始得到這樣的錯誤消息;Scrapy + Splash(Docker)問題

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. 

我會發現docker中的splash進程已終止或無響應。

我一直在運行着飛濺過程;

sudo docker run -p 8050:8050 scrapinghub/splash 

根據scrapy-splash說明。

我試着在tmux shell中啓動進程以確保ssh連接不會干擾splah進程,但沒有運氣。

想法?

回答

1

您應該運行容器--restart-d選項。請參閱documentation如何在生產中運行Splash。

+0

謝謝。我自己偶然發現了這個想法,用Google搜索,但這是一個很好的資源。我只是爲下一個人添加......你可以看到爲什麼你的docker進程因'docker ps -a'失敗了,並且注意退出代碼137似乎與內存過度使用有關。而@Tomas建議的是當docker automaticalky由於缺乏內存而失敗時重啓該進程。 – Ike