На самом деле я использую Python программу для анализа xml файлов и записи содержимого в реляционную базу данных (я разделен на узлы и все соответствующие элементы). После загрузки каждого файла я перемещаю файл в место архивирования или в место ошибки. Но команда перемещения файла shutil.move(src, dst)
занимает около 200-300 мс, а процесс загрузки занимает около 60-200 мс. Размер файла составляет около 5-20 КБ на файл. Я выбираю файлы для обработки, выполнив команду xml_files = glob.glob('{}/**/*.XML'.format(path_incoming), recursive=True)
Как ускорить процесс? Могу ли я поставить в очередь перемещение файлов, но затем мне нужно учитывать перемещенные в очередь файлы, чтобы они не обрабатывались повторно при выборе файлов. Любые идеи или рекомендации. Мне приходится обрабатывать около 200000 файлов в день (примерно 10 часов в POS-системе), а расположение архива tar.gzipped каждый вечер, чтобы уменьшить количество файлов. Мне просто нравится улучшать пропускную способность, чтобы получить лучший отклик. Я подумал, что, может быть, я смогу создать очередь и обработать ее вторым асинхронным процессом для перемещения файлов в архив или в место ошибки.