【发布时间】:2019-03-19 08:11:17
【问题描述】:
我正在使用 JAVA/Spring MVC,我需要在我的应用程序中为第三方应用程序集成创建一个连接池,因为当我尝试多次连接它时,我的应用程序和服务器系统会占用 100% 的 RAM。
这里我有一个问题,当用户开始多次点击特定方法(callGenerationService())时,我的堆内存(RAM 空间)增加并变为 100%,应用程序会因为连接第三方应用程序而变慢次?在这里我只需要创建一个connection 并多次获取它。我的联系方式,
public class ClickToCallServiceImpl implements ClickToCallServiceInterface {
Client client = null;
@Override
public ClickToCall callGenerationService(ClickToCall clickToCall) {
client = new Client();
client.connect("127.0.0.1", 8021 , "password", 10); //Every time Connection Connect.
client.setEventSubscriptions("plain", "all");
// client.sendSyncApiCommand("",""); //here i run command on every hit like.
client.sendSyncApiCommand(clickToCall.command1, clickToCall.command2);
client.close();
}
}
这里的 'ClickToCall' 是一个带有变量 setter 和 getter 的 @Component Bean/POJO 类。
在那里,我们如何为上述连接创建一个connection (either pool or only once connect),我只连接一次并多次点击clickToCall.Command1 and clickToCall.Command2并使用更少的RAM?提前致谢。
【问题讨论】:
-
客户端是任何库类还是你自己的?
-
这是属于Freeswitch ESL技术的库类
-
是 org.freeswitch.esl.client.inbound.Client 吗?
-
是的,它是 org.freeswitch.esl.client-0.9.2.jar
-
您可以使用commons pool 来创建自己的池here 您可以找到一些示例。无论如何,您确定在发送命令后关闭并释放资源?
标签: java spring spring-mvc connection-pooling