Как обновлять информацию с файла. 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)