Со списком "file_paths" у меня есть настройка ThreadPool для одновременной загрузки каждого файла на сервер с помощью функции "start_file_upload".
Случай, в котором я пытаюсь решить, как добавить вторую функцию к этому с именем «refresh_token».
Я настроил эту функцию для обновления токена аутентификации для используемого мной API, но не могу понять, как отслеживать время истечения, используя «self.expiry_time», которое генерируется, когда auth_tokenвпервые создан.Затем я хочу, чтобы он обновил токен, если запуск не завершен и время приближается к expiry_time.
Функция «refresh_token ()» настроена с помощью оператора if else, чтобы проверить, находится ли текущее время в пределах 5 минут после истечения срока действия, и просто продолжить, если токен все еще активен и будет дляследующие 5 минут, но я не знаю, как вызывать эту функцию каждые 5 минут вместе с потоками загрузки файлов
import os
from multiprocessing.pool import ThreadPool
from contextlib import closing
def main_func(self):
file_paths = []
for file_path in [f for f in os.listdir(self.file_dir)
if f.endswith('.csv')]:
file_paths.append(self.file_dir + file_path)
with closing(ThreadPool(processes=len(file_paths))) as pool:
results = pool.map(self.start_file_upload, file_paths)
pool.terminate()
Я также хотел бы отметить, что я переключился с использования модуля "Threading" надля этого я использовал модуль «multiprocessing», потому что при переключении я видел увеличение времени обработки результатов на 100%, поэтому я бы не стал возвращаться к использованию этого модуля, если это возможно.
TLDR: у меня есть ThreadPool ссписок результатов, используемых в качестве аргументов для одной функции, и необходимо добавить вторую функцию, которая будет выполняться каждые 5 минут, пока первая функция не будет выполнена со всеми завершениями пула.