Имя: Пароль:
1C
 
1с и FTP
,
0 Мистикан
 
14.09.18
17:05
есть стек выгрузки в 60к документов. Есть код в 1с для транспорта документов:
    Если НЕ ПотокВыгрузки.Количество()=0 Тогда
        ФТП = Новый FTPСоединение("х.х.х.х",хх,"ххххх","ххххххх");
    КонецЕсли;
    ПредыдущийКаталог = "";
    Для каждого Строка Из ПотокВыгрузки Цикл
        м = ФТП.НайтиФайлы(Строка.ТекущийКаталогФТП);
        Если м.Количество()=0 Тогда
            ФТП.СоздатьКаталог(Строка.ТекущийКаталогФТП);    
        КонецЕсли;
        Если НЕ Найти(Строка.ТекущийКаталогФТП,"images")=0 Тогда
            м = ФТП.НайтиФайлы(Строка.ПутьКФайлу+"\"+Строка.ИмяФайла);
            Если м.Количество()=0 Тогда
                Если НЕ Строка.ТекущийКаталогФТП=ПредыдущийКаталог Тогда
                    ФТП.УстановитьТекущийКаталог(Строка.ТекущийКаталогФТП);
                КонецЕсли;
                ФТП.Записать(Строка.ПутьКФайлу,Строка.ИмяФайла);
            КонецЕсли;
        Иначе    
            ФТП.УстановитьТекущийКаталог(Строка.ТекущийКаталогФТП);
            ФТП.Записать(Строка.ПутьКФайлу,Строка.ИмяФайла);
        КонецЕсли;
        ПредыдущийКаталог = Строка.ТекущийКаталогФТП;
    КонецЦикла;
    ФТП = Неопределено;
Каждый документ 1-6кб. Выгружается 1 документ 1.5-2 секунды.
Как это можно ускорить?
1 Greeen
 
14.09.18
17:07
а по замеру производительности что ест время?
2 Мистикан
 
14.09.18
17:09
1.5-2 секунды это ФТП.Записать(Строка.ПутьКФайлу,Строка.ИмяФайла);
3 Мистикан
 
14.09.18
17:09
по замеру
4 Мистикан
 
14.09.18
17:10
в разное время разное среднее значение на 100 документов
5 Cool_Profi
 
14.09.18
17:10
А что тут ускорять? Выгрузка на ФТП - само по себе не самое лёгкое занятие...
6 Fram
 
14.09.18
17:10
Несколько потоков попробуй
7 spiller26
 
14.09.18
17:11
(0) Пакуй их отсылай
8 Greeen
 
14.09.18
17:11
теоритически на попробовать можно локально сохранять, а уже потом все кучей на фтр перебросить..
9 Мистикан
 
14.09.18
17:11
да блин как я понял с логов ftp сервера после загрузки файла 1с закрывает соединение
10 Greeen
 
14.09.18
17:11
+ про несколько потоков годный совет =)
11 Fram
 
14.09.18
17:12
(9) используй внешнее приложение
12 Базис
 
naïve
14.09.18
17:32
ftp.exe из ОС работало быстро и хорошо ещё в 77.
13 ptiz
 
14.09.18
17:36
Проще договориться об обмене архивами zip.
14 Мистикан
 
14.09.18
17:49
(13) не получится. Документ изменился, отправился.
15 Мистикан
 
14.09.18
17:49
(12) как раз его сейчас пробую
16 Мистикан
 
25.09.18
14:10
В итоге решил через многопоточность. В 10+ потоков достаточно.
2 + 2 = 3.9999999999999999999999999999999...