Как обновлять информацию с файла. Python aiogram

Есть команда у бота с помощью которой можно менять информацию с файла. Вот она

@dp.message_handler(commands=['createdz'])
def createdz(m):
   statistic = open('media/dz.txt', "w" )
   statistic.write(m.text)
   statistic.close()

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

with open('media/dz.txt') as f:
   failik = f.read()

@dp.message_handler(commands=['dz'])
async def process_start_command(message: types.Message):
   await message.reply(dz.failik) 

Ответы (1 шт):

Автор решения: gil9red

Пример использования кэша и потока, который этот кэш обновляет раз в минуту

Пример:

import time
import threading


CACHE = {
    'dz': ''
}


def cycled_update_dz():
    while True:
        with open('media/dz.txt') as f:
            CACHE['dz'] = f.read()
        
        time.sleep(60)


thread = threading.Thread(target=cycled_update_dz)
thread.start()


@dp.message_handler(commands=['dz'])
async def process_start_command(message: types.Message):
    dz = CACHE['dz']
    await message.reply(dz)
→ Ссылка