@Nikita235

Как можно сочетать aiogram с aioshedule?

Здравствуйте, пишу бота на питоне и мне потребовалось создать функцию, которая позволит отправлять сообщения в то время, которое выберет пользователь. Использую aioshedule, но ничего не работает.

Вот блок кода:
@dp.message_handler(state=Admin.time)
async def choice_time(message: types.Message, state=FSMContext):
    async with state.proxy() as data:
        data["time"] = message.text
    await message.answer("Отлично, остался последний штрих! Как часто надо выполнять задачу?", reply_markup=admin_kb.kb_admin1)
    await sqlite_db.sql_add_command(state)

@dp.message_handler(text=["Каждый день"], state=Admin.every_day)
async def every_day(message: types.Message, state=FSMContext):
    async with state.proxy() as data:
        data["every_day"] = message.text
    await state.finish()
    aioschedule.every().day.at(choice_time).do(task)
    while True:
        await aioschedule.run_pending()


Как можно решить эту проблему?
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
while True:
        await aioschedule.run_pending()

Из-за этого обработчик события не завершится нормально. Вынеси этот цикл отдельно, и запусти его один раз через asyncio.create_task() при старте бота.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы