|
Загрузка файла регламентным заданием, а если файла нет | ☑ | ||
---|---|---|---|---|
0
vikki
30.07.19
✎
16:23
|
Добрый день! Наверное тема избитая. но не могу найти ответ. Внешняя обработка запускается регламентным заданием по расписанию один раз затягивает оттуда файл. Файл сбрасывается из другой системы автоматически в 4 часа утра. В моем расписании обработка срабатывает в 4.20, с запасиком на всякий случай. А вот если файл не свалился вовремя, а скажем упал в 4.30 утра. Моя обработка отработает и напишет, что выполнена, а в лог запишет, что файл не найден. Ей хорошо, мне будет не очень((( Как сделать так, чтобы обработка запускалась, например каждые пять минут с 4.20 до 7.00, пока не появиться нужный файл? Через расписание у меня не получилось, она начнет потом снова и снова загружать файл каждые пять минут. Может программно как-то прописать, типа файл не найден, тогда ошибка и в расписании повтор при аварийном завершении? Натолкните на решение, плиз.
|
|||
1
PiotrLoginov
30.07.19
✎
16:26
|
Уже столько было таких тем... навскидку подводные камни: файл может еще отсутствовать, файл может быть занят другим процессом, в том числе находится в состоянии копирования, файл может уже лежать в нужном месте, но прав на него нет...
Надо пользоваться поиском. Насчет жалоб на сложности при настройке расписания - это вообще ерунда. |
|||
2
Вафель
30.07.19
✎
16:27
|
вызывай исключение. в расписании настрой повторять по ошибке
|
|||
3
PiotrLoginov
30.07.19
✎
16:27
|
* находится = находиться
|
|||
4
Вафель
30.07.19
✎
16:28
|
(3) все камни обходятся через (2)
|
|||
5
Cyberhawk
30.07.19
✎
16:28
|
Отправляй уведомление, если все хорошо.
Таким образом выработается рефлекс, что если уведомление не пришло, значит надо смотреть. |
|||
6
PiotrLoginov
30.07.19
✎
16:29
|
(3) я бы предпочел все исключительные ситуации обрабатывать самостоятельно. Иначе есть вероятность, что повторение произойдет раз-другой-третий.. и успокоится.
надо привыкать прописывать реакцию на проблемы. например уведомление для других механизмов или лиц. |
|||
7
PiotrLoginov
30.07.19
✎
16:30
|
(5) опять опередил )
|
|||
8
Cyberhawk
30.07.19
✎
16:32
|
(6) Нюанс в том, что уведомлять о том, когда что-то плохо, не сработает, когда механизм уведомления лег.
Это как белый маячок на светофоре жд - говорит о том, что он в принципе работает. |
|||
9
vikki
30.07.19
✎
16:32
|
(5) кому уведомление? пользователям, там каждый шаг в лог пишется, потому как из этого файла формируется куча документов. Вообще еще такой ситуации, чтобы файл вовремя не упал не было, но вдруг будет и мне нужно это предусмотреть
|
|||
10
Cyberhawk
30.07.19
✎
16:32
|
(9) Ответственному
|
|||
11
Вафель
30.07.19
✎
16:32
|
(2) хотя что-то я не вижу такой настройки. но помню что была.
может я с виндой попутал? |
|||
12
piter3
30.07.19
✎
16:33
|
(9) Это уже организационный вопрос
|
|||
13
Cyberhawk
30.07.19
✎
16:33
|
(11) Это свойства регл. задания, а не расписания
|
|||
14
vikki
30.07.19
✎
16:33
|
(11) там есть повтор при аварийном завершении
|
|||
15
Вафель
30.07.19
✎
16:34
|
уведомление сразу слать некошерно. а вот через полчаса уже можно
|
|||
16
vikki
30.07.19
✎
16:40
|
у меня, кроме мысли с ошибкой и повтором нет...А если с уведомлением, как программно будет выглядеть? Файл не найден, признак = не выполнено и как его передать регламентному заданию, что нужно повторить вновь через пять минут поиск файла?
|
|||
17
vikki
30.07.19
✎
16:42
|
или не передавать, а все в коде прописать? а в семь утра обработку отрубит расписание, если файл так и не найдется?
|
|||
18
Cyberhawk
30.07.19
✎
16:42
|
Уведомление по электронной почте например. Для особо взыскательных - в Телеграм, Слэк и т.д.
|
|||
19
vikki
30.07.19
✎
16:44
|
(18) типа мне же в пять утра, что вставай и иди проверяй((((((((((((
|
|||
20
Cyberhawk
30.07.19
✎
16:47
|
(19) Обычно пульс настраивается чтоб приходил в начало рабочего дня. Пульс не пришел - значит надо смотреть.
|
|||
21
Cyberhawk
30.07.19
✎
16:48
|
Пульс = heartbeat. Вид рассылки типа такой, когда все хорошо долбит регулярно.
|
|||
22
vikki
30.07.19
✎
16:49
|
(20) я это в логе увижу в начале рабочего дня
|
|||
23
Cyberhawk
30.07.19
✎
16:49
|
Ну вот чтоб в лог лишний раз не лазать, пульс и настраивается.
|
|||
24
vikki
30.07.19
✎
16:54
|
Может всетаки программно как-то можно, если файлы не найдены, то принудительно запускать обработку через пять минут?
Попытка Если ИдентификаторКоманды = "ЗагрузкаОтчета" Тогда НайденныеФайлы = НайтиФайлы(ИмяФайла_, "*_nonDMA.xls"); Если НайденныеФайлы.Количество() > 0 Тогда ЗаписатьДанныеЛог("Найдены файлы в каталоге для загрузки."); // загружаем файл и отправляем на исполнение алгоритм Для Каждого Файл Из НайденныеФайлы Цикл ЗаписатьДанныеЛог("Считывается файл " + Файл.Имя); СчитатьФайл_(ИмяФайла_ + "\" + Файл.Имя); СформироватьДанные_(); КонецЦикла; Иначе ЗаписатьДанныеЛог("Не найдены файлы для загрузки."); Возврат; КонецЕсли; КонецЕсли; Исключение //добавить запись в журнал ЗаписьЖурналаРегистрации( ОписаниеОшибки(), УровеньЖурналаРегистрации.Ошибка, , , , РежимТранзакцииЗаписиЖурналаРегистрации.Независимая); ЗаписатьДанныеЛог("Ошибка считывания файла. См.журнал регистрации."); КонецПопытки; |
|||
25
ДенисЧ
30.07.19
✎
16:58
|
Сказали же... При ошибке повторять... А в самой рз - если нет файла кидать исключение...
|
|||
26
karabas11
30.07.19
✎
20:51
|
(0) а в чем проблема долбиться на ресурс в поисках файла хоть каждые 10 секунд? Если найден, загружать, ставить отметку (дата, загружен), при достижении критического времени без загруженного файла спамить ответственных за выкладку файла и/или тех кому нужны данные, пущай сами разбираются.
|
|||
27
PiotrLoginov
30.07.19
✎
22:55
|
Только меня смущает, что в (24) реальная проверка доступности и корректности файла, очевидно, будет выполняться только в СформироватьДанные_() ?
Полагаю, даже если НайтиФайлы() вернет массив с искомым файлом, это, например, еще не будет означать, что копирование искомого файла в проверяемый каталог уже завершено. Но - ладно. я бы несколько изменил алгоритм. а вы уж смотрите сами. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |