|
Гуру-тест: копирование файла. Ø (Волшебник 19.03.2015 16:01) | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
07.03.15
✎
23:09
|
Файл копируется по сети из папки А в папку Б.
Если происходит сбой копирования, то в папке Б остается такой же файл, такого же размера, как и исходный, но содержимое разное, т.к. файл в папке Б просто зарезирвировал место, но докопироваться не успел (именно так работает метод 1С СкопироватьФайл). Какой самый простой сбособ убедиться в том что файл скопирован корректно. Предупреждаю - самый простой способ проще, чем CRC или MD5! ;-) |
|||
1
Torquader
07.03.15
✎
23:18
|
Во-первых, никто не обещает, что размер будет правильный, так как это зависит от реализации.
Во-вторых, нормальные системы создают временный файл в целевой папке, записывают его и только после окончания успешной записи переименовывают. Просто, тот, кто файл будет кушать, не должен вообще видеть целевой файл до окончания его записи, и не важно, успешной она будет или нет. |
|||
2
Гений 1С
гуру
07.03.15
✎
23:38
|
(1) так какой твой ответ? я проверял размеры, они одинаковые даже в случае аварийного прерывания.
|
|||
3
Torquader
07.03.15
✎
23:42
|
(2) А тебе написал способ, как надо делать.
Просто, размер в случае сетевого копирования может быть записан в момент начала копирования, а то, что "хвост застрял", это файловую систему не волнует - место под файл будет выделено, а вот данные - до конца не записаны. Если переименование делается после копирования, то не нужно изучать не переименованный файл - его можно просто удалить и повторить операцию. |
|||
4
GROOVY
07.03.15
✎
23:43
|
(0) Нормальные системы с журналированием такого не допускают. Гуру пользуются именно такими.
|
|||
5
Torquader
07.03.15
✎
23:45
|
(4) Система с журналированием откатит операции, если они не записаны в журнале.
Но, в случае битой памяти или кривого сетевого адаптера вас никакое журналирование не спасёт. |
|||
6
GROOVY
07.03.15
✎
23:48
|
(5) Ну у нас "гур" нормальные адаптеры и тем более память. А вариантов нестанартной работы ФС можно кучу привести.
А вопрос ТС не понятен. |
|||
7
vde69
07.03.15
✎
23:52
|
100% гарантия http://infostart.ru/public/16687/
|
|||
8
Torquader
07.03.15
✎
23:53
|
(6) "Блажен, кто верует".
P.S. а переименование после копирования - это и есть наипростейшая реализация системы журналирования. |
|||
9
TormozIT
гуру
07.03.15
✎
23:54
|
(1) +1
Мы при асинхронном обмене данными исключительно так и делаем. |
|||
10
Torquader
07.03.15
✎
23:55
|
(7) SQL-базу для передачи файлов - что-то это напоминает ... м... микроскопом и по гвоздям.
|
|||
11
mikecool
07.03.15
✎
23:57
|
(0) Серега, рассказывай, а то чувствую - щас разопрет от удовольствия
|
|||
12
Котокот
08.03.15
✎
00:02
|
И не спится же людям в предверии восьмогомарта...
|
|||
13
mikecool
08.03.15
✎
00:04
|
(12) я днем выспался )
|
|||
14
Asmody
08.03.15
✎
00:05
|
Сейчас окажется, что Фмксин изобрел код Хемминга
|
|||
15
vde69
08.03.15
✎
00:05
|
(10) ты знаешь у нас были проблемы с обменом, после внедрения обмена через скуль проблем не осталось вообще, даже человека одного сократили :)
|
|||
16
bolobol
08.03.15
✎
00:06
|
ДатаВремя файла смотреть
|
|||
17
Hans
08.03.15
✎
00:09
|
Самый простой способ это пробовать загрузить файл обмена по твоей уникальной системе РИБ, если вылетает ошибка - значит файл нормально не скопировался.
|
|||
18
Torquader
08.03.15
✎
00:11
|
(15) Если бы сделали через почту, то, наверное, и ещё одного можно было бы сократить, например, админа SQL-сервера.
|
|||
19
vde69
08.03.15
✎
00:15
|
(17) самое простое - архив, если развернулся - значит хороший с определенной вероятностью...
|
|||
20
Злопчинский
08.03.15
✎
00:17
|
Фигня.. у меня клиент один после моей дописки из десяти менеджерооператоров троих или четверых оставил, причем одного из них перевел на "складскую" работу...
Наверное, хорошо, что персонал не знал кто и что писал... а то пришлось бы скрываться... Но это уменя один такой успешный выстрел (как Аврора), (если не считать наведения порядка на складе, где вообщем тоже народу поубавилось ощутимо). |
|||
21
zulu_mix
08.03.15
✎
00:19
|
прочитать последние N байт у источника и приемника и сравнить
|
|||
22
Asmody
08.03.15
✎
00:24
|
(21) почему не N первых или N из середины?
|
|||
23
zulu_mix
08.03.15
✎
00:25
|
(22) потому что файл при копировании записывается с начала
|
|||
24
vde69
08.03.15
✎
00:28
|
(23) при многопоточной записи это не так.... фтп например...
|
|||
25
Гений 1С
гуру
08.03.15
✎
00:29
|
(3) бинго! да, именно так. копируем, потом переименовываем. ;-)
я то просто тупо копировал, когда конфигурацию целиком на точку передаю. |
|||
26
zulu_mix
08.03.15
✎
00:29
|
(24) в задаче четко написано "из сетевой папки А в Б методом СкопироватьФайл"
|
|||
27
zulu_mix
08.03.15
✎
00:32
|
(25) тьфу на тебя. нельзя было в задаче сказать что тебе нужна гарантированная доставка всего файла?
|
|||
28
Гений 1С
гуру
08.03.15
✎
16:59
|
(27) настоящий программист 1с должен уметь вытаскивать клещами постановку задачи из программиста.
|
|||
29
ДенисЧ
08.03.15
✎
17:01
|
(28) Настоящий программист должен уметь расписываться в ведомости на получение зарплаты и премии.
Всё остальное - лишнее. |
|||
30
tridog
08.03.15
✎
17:02
|
(25) Тьфу, я уж думал чего интересного почитаю в кой-то веки
|
|||
31
Гений 1С
гуру
08.03.15
✎
17:03
|
Кстати, переписал код по отправке конфигурации, а то иногда не копировалась из-за этого глюка из-за сетевых сбоев. ;-)
|
|||
32
Torquader
08.03.15
✎
18:39
|
(31) Молодец!
|
|||
33
Гений 1С
гуру
08.03.15
✎
20:41
|
(32) ну да, а то че-то сбои при копировании часты, было бы много лишней ручной работы. А так красиво и сердито, 20 метров летают легко и непринужденно.
|
|||
34
H A D G E H O G s
08.03.15
✎
20:48
|
(33) Молодец.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |