参数在excel中,有五列,5w行,一行一条参数信息,要把这些参数去请求某个接口,将接口返回数据写入到本地文件中,怎么设计能提高整个过程的速度??

解决方案 »

  1.   

    把excel文件读取后,写入数据库,追求性能采用内存数据库,字段有行号+5个数据字段,增加流水号,执行状态,开始时间,失败次数,结果等并发调用接口,主线程从数据库查询出未执行记录(用数据库最大的优点,这里好写),分发给子线程调用接口,数据变更
          主线程:调用前,更新流水号,执行状态为正在执行;
          子线程:调用成功,更新状态和结果;  调用失败,更新状态为失败全部都调用成功,或者失败的次数超过阈值,则停止,回写excel
      

  2.   

    流水号看接口要求,一般要有一个唯一的请求号,一般叫流水号。主线程,子线程可以使用Executors和ThreadPoolExecutor
    英文:
    http://www.geeksforgeeks.org/thread-pools-java/
    中文:
    http://www.importnew.com/8542.html  
    while(true){
    lines=getLines(); //查询需要调用的接口行数据
    int running =geRunning(); //查询正在运行的接口if (lines.length()>0 && running >0) break;
    for( line : lines){
           Runnable worker = new WorkerThread(line);
                executor.execute(worker);
    }}
      

  3.   

    你可以接口接收文件  把excel文件上传至服务器  服务器解析excel   解析这里可以利用多线程分段解析excel  在生成好文件下载至本地嘛