一个 service 方法里 for 循环一个列表,每条记录里 new Thread 在 run 方法里调用一次 payRPC 方法 例如
orderList.forEach(x->{ new Thread(){ public void run(){ payRPC.reset(x.getId(),x.getUserId()); } }.start(); });
但是这种方式 报错了 "could not be queued for execution and no fallback available", 超出了 Hystrix 默认是 10 个线程.
请问一下能否改成 循环列表 把 rpc 调用放到线程池中去,让它去控制短时间内的 RPC 调用,这样是否可行? executorService 的队列 queue 大小是不是得小于 10 个(Hystrix 默认的线程数)
orderList.forEach(x->{ executorService.execute(new Runnable() { @Override public void run() { payRPC.reset(x.getId(),x.getUserId()); } }); });
或者 循环列表, 不使用 PRC 调用,直接利用 httpClient 这种直接调用 url 接口请求? 有提到 RabbitMQ(这个还没接触过)
就像这种情况 https://www.sunp.eu.org/t/481064, 300 万的列表,rpc 接口 但每次只能处理 300(超出报错),怎么去有限制地调用 rpc 接口 (我的数据量没这么大).
请问下大佬 我这种该怎么解决? 谢谢