如果我想启动一个将使用 twilio 发送短信的线程, 这样做更好吗
TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);
对于每个线程,或者我应该创建一个客户端并与线程共享它?
最佳答案
您可以查看 twilio-java 的 TwilioRequestClient 类的源代码辅助库在这里:https://github.com/twilio/twilio-java/blob/master/src/main/java/com/twilio/sdk/TwilioRestClient.java
我没有看到任何明显线程安全的东西。我唯一关心的是构造函数中的这部分代码:
//Grab the proper connection manager, based on runtime environment
ClientConnectionManager mgr = null;
try {
Class.forName("com.google.appengine.api.urlfetch.HTTPRequest");
mgr = new AppEngineClientConnectionManager();
} catch (ClassNotFoundException e) {
//Not GAE
mgr = new ThreadSafeClientConnManager();
((ThreadSafeClientConnManager) mgr).setDefaultMaxPerRoute(10);
}
它为每次初始化生成一个新的线程池,所以我想说共享资源。另一方面,它是否有足够的可用连接来有效地处理您的负载?
您可以在此处阅读有关 ThreadSafeClientConnManager 的更多信息:https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager.html#setDefaultMaxPerRoute%28int%29
底线,尝试根据您的预期使用情况对其进行负载测试,并调整源以满足您的需求。
关于java - Twilio 线程消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23016255/