У меня есть 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)
Это задание обычно занимает не менее половины дня. . Что бы здесь исправить, поскольку перезапуск задания всегда обходится очень дорого.