2015-06-02 3 views
-1

Я создал приложение Java, которое считывает CSV-файл с FTP-сервера и вставляет данные csv в postgress database. Я развернул приложение позже в Heroku, а также добавил некоторые файлы csv на бесплатный хост, просто чтобы проверить, как работает мое приложение.Чтение csv-файлов задержка

Тесты показывают, что приложение начинает читать файлы и вставляет их очень быстро, но если файл csv больше, чем 5000 строк, из строк 3000-5000 требуется много времени для чтения с моего хоста ,

Задержка может быть проблемой моего бесплатного хоста или проблемы с героем, или мне нужно реорганизовать мой код?

+0

Возникает ли у вас такая же проблема с обычным клиентом FTP GUI (например, WinSCP или FilezZlla)? –

+0

Нет, у меня нет такой же проблемы, когда я использую обычный FTP-клиент (я использую FileZilla), и он намного быстрее (например, в 10 раз или быстрее с моим FTP-клиентом). Это странно для меня, потому что это тот же код! Это проблема с моим кодом или чем-то еще? –

+0

Покажите нам свой код. –

ответ

0

Это код, который я использую.

public void Listing(String filename) 
    { 
    header = new ArrayList<String>(); 
    int fid = 0; 
    int hid = 0; 
    BufferedReader bufferedReader = null; 
    InputStream inputStream = null; 
    setFtpUrl(); 
    String fullPath = setFullPath(); 
    try 
    { 
     URL url = new URL(fullPath); 
     URLConnection conn = url.openConnection(); 
     inputStream = conn.getInputStream(); 
     bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 

     String line = bufferedReader.readLine(); 
     Boolean isHeader = true; 
     while (line != null) 
     { 
      Rlines = new ArrayList<String>(); 
      int k=0; 
      while(k<300 && line!=null){ 
       if (isHeader){ 
        header = Arrays.asList(line); 
        hjson = new Gson().toJson(header); 
        hid = dbConnect.insertHeader(hjson); 
        isHeader=false; 
        fid = dbConnect.insertFile(filename, "ss", 0, 0, 0, hid); 
       } 
       else{ 
        List<String> rows = Arrays.asList(line); 
        rjson = new Gson().toJson(rows); 
        Rlines.add(rjson.toString()); 
       } 
       line = bufferedReader.readLine(); 
       k++; 
      } 

      dbConnect.insertRows(Rlines, "New", fid, hid, "123kot123"); 

     } 
    } 
Смежные вопросы