Мне надо, чтоб каждый 10 секунд бот закреплял сообщение из массива, как мне вызвать асинхронную функцию
await scheduler.add_job(loop, 'interval', seconds=10)
? При моём подходе выскакивает ошибка
TypeError: func must be a callable or a textual reference to one
. Если await не писать, то будет ошибка, говорящая что не смогла запустить функцию loop.
Как мне заупстить функцию асинхронную loop вне основного потока?
from apscheduler.schedulers.background import BackgroundScheduler
async def loop():
try:
for msg in config.PINNABLE:
try:
await bot.pin_chat_message(msg.chat.id, msg.message_id)
except:
pass
except:
pass
bot = Bot(token=config.API_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
async def main():
scheduler = BackgroundScheduler()
await scheduler.add_job(loop, 'interval', seconds=10)
await scheduler.start()
loop = asyncio.get_event_loop()
loop.ta(main())
if __name__ == '__main__':
from handlers import dp
executor.start_polling(dp, skip_updates=True)