С какой периодичностью запускалась программа по перекладыванию файлов
Что проверяют
Это уточняющий вопрос по вашему же рассказу, и проверяют им достоверность. Интервьюер хочет услышать не число, а обоснование: откуда взялась частота и что в коде обеспечивало корректность при таком расписании.
Как отвечать
Назовите период и сразу привяжите его к требованию. Частота обычно складывается из трёх вещей: как быстро смежная система ждёт данные, когда источник их выкладывает и сколько длится сам прогон.
Дальше расскажите про механику:
- чем запускалось: системный
cron,@Scheduledвнутри приложения,Quartzс расписанием в базе, оркестратор конвейера; - наложение прогонов: если обработка иногда длится дольше периода, нужен запрет параллельного запуска, иначе два потока возьмут один файл;
- несколько экземпляров приложения: планировщик сработает в каждом, поэтому нужен общий замок в базе;
- готовность файла: источник может ещё дописывать его, поэтому берут по маркеру завершения или по переименованию, а не по появлению в каталоге;
- повторная обработка: перенос в каталог обработанных, отметка в таблице, поведение при падении на середине пачки.
Если точную цифру не помните, так и скажите: раз в несколько минут или раз в сутки ночью, и объясните, чем определялся выбор.
Где спотыкаются
Придумывают красивое число, а на уточнении про объём данных и длительность прогона оно перестаёт сходиться с остальным рассказом.
Забывают про несколько экземпляров сервиса. Планировщик внутри приложения по умолчанию работает в каждом из них, и без внешней блокировки файлы разбираются дважды.
Не упоминают признак готовности файла. Чтение наполовину записанного файла это самая частая ошибка таких задач, и интервьюер почти всегда спрашивает именно про неё.