boto3: StreamingBody [Errno 104] Соединение сброшено одноранговым узлом - PullRequest
0 голосов
/ 18 июня 2020

У меня есть StreamingBody из s3, который нужно открывать в течение длительного периода времени (из-за большого времени обработки и очень больших файлов). Иногда это вызывает ошибку [Errno 104] Connection reset by peer.

Я не уверен, что вызывает это, но вот отрывок:

import boto3

def csv_stream(s3, key):
    obj = s3.get_object(Bucket='bucket', Key=key)
    body = obj['Body']
    text = codecs.getreader('utf-8')(body)
    return csv.reader(text)

s3 = boto3.client('s3')

for key in get_keys():
    for row in csv_stream(s3, key):
        do_long_transformations(row)

Это задание обычно занимает не менее половины дня. . Что бы здесь исправить, поскольку перезапуск задания всегда обходится очень дорого.

1 Ответ

0 голосов
/ 02 июля 2020

Кажется, добавление конфигурации повтора решает эту проблему

s3 = boto3.client('s3', config=Config(retries={'max_attempts': 3}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...