Skip to content

juhnowski/sbertech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Очередь авторизованных сообщений с БД типа «Ключ/Значение» с кэшированием в памяти

Формулировка задачи

На вход некоторой автоматизированной службы (АС) поступают запросы, которые необходимо обработать. Запросы поступают во входной каталог в виде файлов, имя которых начинается с IN, каждый запрос в отдельном файле. При обработке АС использует справочную информацию, которая также периодически поступает на её вход в виде отдельного файла, имя которого начинается с SP(справочник). При поступлении очередного файла справочника АС должна актуализировать свою справочную информацию. Справочная информация, используемая АС при обработке запросов – это набор неких «ключей», обработка по которым разрешена. Ключ представляет собой целое число в диапазоне от 1 до 999999, дополненное слева нулями до 6 символов. В свою очередь в запросах, поступающих на вход системы, содержится значение ключа, которое АС должна проверить на актуальность. На входе программы могут повторяться запросы с одинаковым значением ключа.

Обработка запроса системой заключается в следующем:

  1. Прочитать очередной файл запроса из входного каталога (IN) и определить значение ключа из имени файла.
  2. Если значение ключа на момент обработки актуально, переместить файл запроса в выходной каталог (OUT).
  3. Если значение ключа на момент обработки не актуально (отсутствует в справочнике), переместить файл запроса в каталог ошибочных файлов (ERR).
  4. Повторить обработку для других файлов запросов.
  5. Если во входном каталоге больше нет файлов запросов, необходимо организовать ожидание возобновить обработку при появлении файлов.

Ограничения

При эксплуатации АС имеются ограничения на использование оперативных вычислительных ресурсов:

  1. Объем справочника, который можно разместить в оперативной памяти ограничен 100 записями. Оставшаяся часть справочной информации должна быть размещена на жестком диске, объем которого не ограничивается.
  2. Обработка должна выполняться в многопоточном режиме, необходимо иметь возможность настройки количества потоков (например, из командной строки). Количество потоков обработки по умолчанию – 4. Дополнительные условия и ограничения После загрузки ключи сохраняют актуальность ограниченное время (по умолчанию – 1 минуту). По истечении этого времени ключ должен быть удален из справочника (или помечен как неактуальный). Во вновь поступившем на вход системы справочнике ключи могут повторяться.

Формат входных файлов

  1. Файл запроса. Имя файла: INKKKKKK.NNN, где KKKKKK – значение ключа из справочника, NNN – порядковый номер. Содержимое: в рамках данной задачи не имеет значения.

  2. Файл справочника. Имя файла: SPЧЧММСС.TXT, где ЧЧММСС – время формирования файла Содержимое: файл содержит список актуальных ключей в текстовом виде. В каждой строке – один ключ, строки разделены символами 0x0D, 0x0A.

About

java developers test task

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published