-
Notifications
You must be signed in to change notification settings - Fork 0
AduchiMergen/sms16_test
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published