Телеграм бот (aiogram) не принимает другие сообщения при выполнении on_startup
Почему-то при использовании функции on_startup бот не реагирует на сообщения пользователя. Прикладываю код:
import asyncio
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
import re
bot = Bot(token='wwwwwwwwwwwwwwwwww')
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
while True:
await message.answer('1')
await asyncio.sleep(20)
@dp.message_handler(content_types=["text"])
async def text_message(message: types.Message):
await message.answer(message.text)
async def on_startup(_):
try:
my_file = open('users_active.txt', 'r+')
except IOError:
my_file = open('users_active.txt', 'w+')
txt_data = my_file.read()
if len(txt_data) > 1:
txt_data = re.split('\n', txt_data)
while True:
for i in range(0, len(txt_data) - 1):
await bot.send_message(txt_data[i], '1')
await asyncio.sleep(20)
my_file.close()
executor.start_polling(dp, on_startup=on_startup)
Суть данного кода следующая. Если запустить бота без on_startup, то при получении команды /start он каждые 20 секунд будет отправлять цифру 1, но если написать любое другое сообщение, он сработает как эхо (напишет такое же в ответ). Но если попытаться запустить такой же принцип без команды /start (просто по запуску бота, через on_startup), то бот также присылает каждые 20 секунд цифру 1, но эхом не возвращает сообщения.
Подскажите, пожалуйста, почему так получается, и как это исправить?
Спасибо!