Показать сообщение отдельно
Старый 12.06.2024, 19:03   #1  
Lankey is offline
Lankey
Участник
 
148 / 30 (2) +++
Регистрация: 19.05.2020
Архитектура импорта файлов: батчем + интеррактивно
AX2009

Простая задача: Нужно импортировать файлы батчем из папки на сервере и также дать возможность пользователю запустить этот процесс вручную(интеррактивно)

Как избежать того, чтобы два батч процесса или батч+интеррактив не начали одновременно обрабатывать один и тот же файл?
Один из вариантов, как мне кажется: создать табличку, куда писать имя файла и статус (обработан или нет) и, может, какой-то guid для обозначения процесса, который файл обрабатывает. Т.о конкурирующий процесс увидит, что файл уже в процессе обработки, и не будет его трогать.

Другой вариант: можно куда-то перемещать файл сразу для обработки(в другую папку и удалять из текущей), но, наверное, это менее надежный подход

Еще один: как-то лочить сам файл(открывать на запись, но ничего не писать).Тогда другой процесс проверит открыт ли он на запись и не сможет обработать.

Есть ли иные(проверенные) способы?
(Не хочу изобретать велосипед или наступать на грабли). Может, в самой аксапте есть хорошие стандартные примеры?

Последний раз редактировалось Lankey; 12.06.2024 в 19:08.