Skip to content

AduchiMergen/sms16_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Описание алгоритма:
Для ускорения нахождения удаляемого файла по идентификатору подготавливаем список файлов в
директории для пользовательских файлов. Этот шаг необходи тк нам не известно расширение
файла, но известно что имя файла состоит из идентификатора и расширения. Поиск файла по
идентификатору в папке долгая операция тк надо каждый раз обходить все файлы и сопоставлять
с маской.
Выбираем из БД все записи о файлах объединив с информацией о пользователях по идентификатору
пользователя владельца файла. Для каждого файла проверяем истек ли срок его хранения. Для
чего раскодируем параметры пользователя, находим в них срок хранения файлов, вычисляем
срок хранения и сравниваем его с текущей датой. Если срок хранения истек получаем из списка
файлов полный путь файла по идентификатору, удаляем его и запись в базе данных о файле.

Алгоритм выбран исходя из структуры БД(тк срок хранения закодирован нам необходимо получить
информацию о всех файлах, для удобства и скорости получаем его одним запросом). А также из
за необходимости ведения лога удаления записей о файлах в бд(множество одинарных запросов
вместо одного).

Сложность: O(n)(Список файлов в директории)+O(n)(Запрос к базе и получение результатов)+
O(n)(проверка срока)+O(2k)(удаление файлов)
n - кол-во пользовательских файлов
k - кол-во файлов для удаления

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages