并发处理我已经写和执行类:Java并发处理
ExecutorService service = Executors.newFixedThreadPool(10);
Future<List<Content>> submit = service.submit(new PushClass(pushlist, content));
List<Content> resu = submit.get();
和下面是实现可调用接口的推类:
public class PushClass implements Callable<List<Content>> {
List<Content> ls;
String content;
public PushClass(List<Content> ls, String content) {
this.ls = ls;
this.content = content;
}
private synchronized String push(String msisdn, String content, String Cli) {
// hitting the push url
} catch (Exception e) {
e.printStackTrace();
}
return status;
}
@Override
public List<Content> call() throws Exception {
for (Content c : ls) {
c.setResponse(push(c.getMsisdn(), content, c.getCli()));
}
return ls;
}
高达什么限制我可以增加线程以防止任何排队在服务器或我可以使池动态?有时tomcat显示错误,因为“其他线程正在处理中”,我可以动态缩放它。
您应该尝试使用Apache DBCP进行连接池:https://commons.apache.org/proper/commons-dbcp/ –
考虑缓存数据库条目并将它们提交为而不是每秒有6000个插入。 – John
您可以同步一个方法来管理List/Queue,然后在达到阈值时推送到服务器。 –