Не работает aioscheduler, aiogram 3. Как сделать что бы работал?
import logging
import sys
import time
import aioschedule
import asyncio
from datetime import datetime
from aiogram import Bot, Dispatcher,types, html
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.filters import CommandStart
from aiogram.types import Message
TOKEN = ""
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
parse=True
spisok =[1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15]
n=int()
prevweekday = int()
skipper = True
dp = Dispatcher()
async def weekday():
now = datetime.now()
current_weekday = now.weekday()
return current_weekday
@dp.message(CommandStart())
async def dejur(message: Message):
print(1)
global n,skipper
if weekday():
await bot.send_message(chat_id=1108995102, text=f"Дежурные: {spisok[n]}")
if skipper == True:
if n!=14:
n = n+1
else:
n=0
return n
else:
skipper = True
return skipper
async def scheduler():
#aioschedule.every().day.at("12:00").do(dejur)
aioschedule.every().minute.do(dejur)
while True:
await aioschedule.run_pending()
await asyncio.sleep(1)
async def on_startup(_):
asyncio.create_task(scheduler())
async def main():
logging.basicConfig(level=logging.INFO)
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())```
Ответы (1 шт):
Автор решения: Илья
→ Ссылка
Функция dejur обёрнута в декоратор, и на вход принимает сообщение.
aioschedule.every().minute.do(dejur)
Не делал отложенные сообщения таким способом. Но, возможно, дело в том, что сама по себе dejur отрабатывает после декоратора при попадании в него сообщения