Как использовать ожидание в библиотеке расписания? - PullRequest
0 голосов
/ 14 июля 2020

У меня это исключение 7 Как это исправить?

RuntimeWarning: сопрограмма 'job' никогда не ожидалась self._run_job (job) RuntimeWarning: включить tracemallo c, чтобы получить трассировку выделения объекта

from aiogram import Dispatcher, Bot, executor
from aiogram.types import Message,CallbackQuery
from asyncio import sleep
import schedule

bot = Bot(token)
dp = Dispatcher(bot)


@dp.message_handler(commands=['start'])
async def start(message : Message):
    await bot.send_message(message.chat.id, message.text)


async def job():
    await bot.send_message(626420006, 'job done!')
    

async def scheduler():
    schedule.every(2).seconds.do(lambda : job())

    while True:
        schedule.run_pending()
        await sleep(1)
    


if __name__ == "__main__":
    dp.loop.create_task(scheduler())
    executor.start_polling(dp,skip_updates=True)
    

1 Ответ

0 голосов
/ 14 июля 2020

Я использовал другую библиотеку aioschedule

from aiogram import Dispatcher, Bot, executor
from aiogram.types import Message,CallbackQuery
import asyncio
import time
import aioschedule as schedule

bot = Bot('')
dp = Dispatcher(bot)


@dp.message_handler(commands=['start'])
async def start(message : Message):
    await bot.send_message(message.chat.id, message.text)


async def job():
    print('hello')
    await bot.send_message(626420006, 'job done!')
    

async def scheduler():
    
    schedule.every(1).seconds.do(job)

    # loop = asyncio.get_event_loop()
    while True:
        await schedule.run_pending()
        await asyncio.sleep(2)


if __name__ == "__main__":
    dp.loop.create_task(scheduler())
    executor.start_polling(dp,skip_updates=True)
    
...