0
AWS S3に画像をアップロードするときに、サーバがダウンしているため、ScrapyでBotoServerError
が発生しました。アイテムパイプラインをしばらくスリープ状態にして、もう一度アップロードを再試行できるように、これらのエラーをどのように処理できますか?再試行遅延:処理中の
2016-11-17 05:59:55 [twisted] CRITICAL:
Traceback (most recent call last):
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\threadpool.py", line 246, in inContext
result = inContext.theWork()
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\threadpool.py", line 262, in <lambda>
inContext.theWork = lambda: context.call(ctx, func, *args, **kw)
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\context.py", line 81, in callWithContext
return func(*args,**kw)
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 1426, in set_contents_from_string
encrypt_key=encrypt_key)
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 1293, in set_contents_from_file
chunked_transfer=chunked_transfer, size=size)
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 750, in send_file
chunked_transfer=chunked_transfer, size=size)
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 951, in _send_file_internal
query_args=query_args
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\connection.py", line 668, in make_request
retry_handler=retry_handler
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\connection.py", line 1071, in make_request
retry_handler=retry_handler)
File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\connection.py", line 1028, in _mexe
raise BotoServerError(response.status, response.reason, body)
BotoServerError: BotoServerError: 503 Service Unavailable
私はScrapyのS3アップロードハンドラが再試行しないと思います。私はboto3に移行する以外の簡単な修正があるとは思っていません(これについてのオープンな問題があります)。 –
'botocore'をインストールすることもできます(もし利用可能であれば、 'boto'の代わりに' botocore'を使うでしょう)。 botocoreが再試行したようです(私はそれについて多くの詳細を見つけることはできません) –
ありがとう! 'boto3'はそれを解決します! –