Как отправить сообщения юзерам при старте бота Aiogram

Допустим, создал я бота. Хочу, чтобы обособленно от готовых хендлеров, бот отправлял всем пользователем подготовленное сообщение. Допускаю, что это можно сделать, во время перезапуска бота Пробовал этот способ, ничего не вышло и ничего не понял:

from aiogram import Bot

token = 'token'
bot = Bot(token)


async def gg():
    while True:
        await bot.send_message(id, msg)
        asyncio.sleep(10)


asyncio.run(gg()) ```

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

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

Вам нужна бд с юзер айди для того чтобы сделать это. У aiogram есть встроенные способы сделать что-то при старте бота и при завершении это on_startup и on_shutdown.
Вот примерный код как это должно работать.

from aiogram import Bot, Dispatcher, executor
from aiogram.contrib.fsm_storage.memory import MemoryStorage
import asyncio

from data import config

bot = Bot(token=config.BOT_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)


async def on_startup(_):
    arr = []  # абстрактный массив с юзер_айди
    for user_id in arr:
        await bot.send_message(chat_id=user_id, text="Бот запущен!")
        await asyncio.sleep(1)
        

if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True, on_startup=on_startup)

→ Ссылка