在Python中使用botocore
庫進行AWS-EC2的自動化操作時,我注意到許多HTTPS連接仍在建立中,這些連接不再需要忙於進行的進程其他的東西(如此殺死它們或將它們重新編碼退出並不是一種選擇)。我認爲botocore
會話和/或客戶端對象正在離開建立的AWS端點的連接。 botocore
文檔顯示如何啓動或創建它們,但不是如何關閉它們或清理乾淨。我嘗試了一個.close
方法,但它不存在。 如何在不殺死進程的情況下正常關閉這些連接?botocore:如何關閉或清理會話或客戶端
6
A
回答
2
我有同樣的問題,但是從稍微不同的角度:當關閉工作線程,我的日誌文件會得到堆滿了這些警告 - 也因開連接:
異常在忽略:< ssl.SSLSocket fd = 4,family = AddressFamily.AF_INET,type = 2049,proto = 6,laddr =('[internal ip]',49266),raddr =('[external ip]',443)>
ResourceWarning:unclosed < ssl.SSLSocket fd = 4,family = AddressFamily.AF_INET,type = 2049,proto = 6,laddr =('[internal ip]',49266),raddr =('[external ip]',443)>
經過一段時間的兔子洞之後,我已經想出瞭如何在關閉線程之前正確關閉連接。
我在boto3中使用SQS,因此您可能需要修改調用以使其與botocore協同工作。
我的實施例產生上述警告是:用
import boto3
import boto3.session
import warnings
warnings.simplefilter('error', ResourceWarning) # Display warnings
session = boto3.session.Session()
sqs = session.resource('sqs', region_name=AWSregion)
sqs_q = sqs.Queue(url=SQSQueueUrl)
sqs_msg = sqs_q.receive_messages(MaxNumberOfMessages=1)
的SQS連接可以被關閉:
sqs.meta.client._endpoint.http_session.close() # closing a boto3 resource
sqs._endpoint.http_session.close() # closing a boto3 client
相關問題
- 1. 如何處理客戶端關閉Javascript?
- 2. C++如何在客戶端顯示或關閉ledstatus?
- 3. 客戶端會話
- 4. 會話服務器端或客戶端(可否訪問)?
- 5. WCF 4關閉客戶端代理
- 6. 如何清除客戶端.Net SSL會話緩存
- 7. 我如何關閉wcf客戶端
- 8. 如何安全關閉rmi客戶端?
- 9. JavaScript REST客戶端和會話管理
- 10. 客戶端處理會話超時
- 11. JAX-RS客戶端和會話管理
- 12. 客戶端處理會話超時
- 13. asp.net驗證客戶端或客戶端或服務器端
- 14. 如何管理客戶端的當前用戶會話?
- 15. MySql客戶端正在使用或沒有正確關閉表
- 16. 當客戶端寫'再見'時關閉聊天程序或jframe?
- 17. java.nio.channels.ClosedChannelException - 客戶端關閉SSL
- 18. 客戶端關閉連接
- 19. 硒客戶端不關閉
- 20. 當Telnet客戶端關閉時,BufferedReader或Socket不會引發異常
- 21. 關閉或處理
- 22. ActiveMQ如何處理關閉的會話
- 23. 在客戶端運行c#代碼或使Web會話交互?
- 24. 服務器http保持活動到客戶端ip或會話?
- 25. Delphi XE斷開或終止datasnap客戶端會話
- 26. 處理大量客戶端:UDP或TCP?
- 27. 沒有調用客戶端或代理
- 28. WCF客戶端 - 客戶端何時關閉通道
- 29. Flask客戶端會話
- 30. Toplink客戶端會話