Телеграм бот (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, но эхом не возвращает сообщения.

Подскажите, пожалуйста, почему так получается, и как это исправить?

Спасибо!


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