Как мне создать конвейер для хранения файлов, которые нужно обработать? - PullRequest
0 голосов
/ 12 июня 2019

У меня есть сервер, установленный в моей ОС Ubuntu, в котором есть два каталога: «dump» и «processing».Как только файлы Excel копируются в папку «dumped», мой сценарий обрабатывает их, чтобы поместить их в базу данных MS SQL, а затем перемещает эти файлы в «обработанные».Должен ли я создать какой-то конвейер для случая, когда для обработки присутствуют сотни файлов?Есть ли более эффективный способ сделать это?

В настоящее время я делаю получение имен всех вновь добавленных файлов в dict.Затем скрипт выбирает один файл за раз и обрабатывает его.Это модифицированная версия кода Тима Голдена из этой записи

def monitor_dumped():
    """Returns the files added to dump folder since its last modification time in the form
     of a dict
    """
    mod_time = os.path.getmtime(folder_to_monitor)  # no. of seconds since epoch
    m = datetime.datetime.fromtimestamp(mod_time)  # change time format for difference computation
    currentDT = datetime.datetime.now()  # current system time
    tslm = currentDT - m  # time_since_last_modification
    need = False
    before = dict(\[(f, None) for f in os.listdir(folder_to_monitor)\])
    if (tslm.seconds > 5):
        need = True
    else:
        print("It hasn't been 5 seconds yet.")
    while need:
        time.sleep(10)
        after = dict(\[(f, None) for f in os.listdir(folder_to_monitor)\])
        added = \[f for f in after if not f in before\]
        if added: print("Added: ", ", ".join(added))
        before = after
        need = False
        return before

Я надеюсь достичь этой же функциональности с большей модульностью и производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...