一段时间后卡住了

时间:2019-01-02 10:25:04

标签: python amazon-web-services docker scrapy dask-distributed

我在AWS EC2上使用dask分布式库建立了一个主网络。现在,我有一台主计算机和一台工人计算机。 Master具有REST API(烧瓶),用于在工作机上调度临时任务。我将docker用于master和worker,这意味着master容器和worker容器都使用分布式dask相互通信。

当我调度程序抓取作业时,抓取成功开始,抓取也将数据上传到s3。但是经过一段时间后,草木卡住了一点,此后什么也没发生。

请检查附件日志文件以获取更多信息

log.txt

2019-01-02 08:05:30 [botocore.hooks] DEBUG: Event needs-retry.s3.PutObject: calling handler <bound method S3RegionRedirector.redirect_from_error of <botocore.utils.S3RegionRedirector object at 0x7f1fe54adf28>>

抓狂卡在上面。

运行docker的命令:

sudo docker run --network host -d crawler-worker # for worker
sudo docker run -p 80:80 -p 8786:8786 -p 8787:8787 --net=host -d crawler-master # for master

我也在新鲜的ec2机器上也遇到这个问题

2 个答案:

答案 0 :(得分:1)

我解决了这个问题。问题出在子进程中,我正在使用它执行带有参数stdout = subprocess.PIPE的scrapy。根据子进程的文档,wait()函数在使用stdout = subprocess.PIPE或stderr = subprocess.PIPE时可能导致死锁。 >

答案 1 :(得分:0)

(这是一条评论,但我没有这样做的意思。)

您可能会遇到某种反DDOS保护。您是否尝试过刮取控制站点?