gpt4 book ai didi

java - AWS Java TransferManager 问题,JVM 无法获得更多 native 线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:48 25 4
gpt4 key购买 nike

几周来我一直在与 TransferManager 问题作斗争,我希望能得到一些反馈,

我有一个等待任务发送给它的服务器应用程序。其中一些任务需要上传到 S3。该任务包含我需要的所有上传信息,包括访问 key 。

在我实际的上传代码中,每次我需要上传时,我都需要创建一个新的S3ClientTransferManager 对象,因为我不知道我的访问 key 时间。

在系统处理大约 1200 次上传后,我收到一条错误消息,指示 JVM 无法再获取更多 native 线程。我将分析器附加到应用程序并注意到 TransferManager 对象没有得到正确清理,有数千个“s3-transfer-manager-worker-1”线程闲置。

我试图在上传完成后添加对 TransferManager.shutdownNow() 的调用。那确实清理了线程。但是,每当创建新的 TransferManager 并尝试上传时,我都会收到 RejectedExecutionException

TransferManager 包含一个 UploadMonitorUploadMonitor 有一个静态的 ScheduledExecutorServiceTransferManager.shutdownNow() 调用静态方法 UploadMonitor.shutdownNow(),后者调用执行程序服务上的 shutdownNow()。这使得我无法再使用任何 TransferManager 对象,即使我尝试创建一个新对象也是如此。

如何在不耗尽线程的情况下使用多个传输对象?这似乎是一个错误。

最佳答案

亚马逊确认这是一个错误。在这里查看详细信息 https://forums.aws.amazon.com/thread.jspa?threadID=83520&tstart=0

关于java - AWS Java TransferManager 问题,JVM 无法获得更多 native 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8609872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com