对于并发处理,我编写了和executor类:
ExecutorService service = Executors.newFixedThreadPool(10);
Future<List<Content>> submit = service.submit(new PushClass(pushlist, content));
List<Content> resu = submit.get();下面是实现可调用接口的push类:
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会显示错误,因为“另一个线程正在处理”,我可以动态地缩放它。
发布于 2015-08-27 06:13:33
https://stackoverflow.com/questions/32241843
复制相似问题