我有一个电报机器人,Heroku上部署.我试图让它检查一个网站上的新交易每分钟.通常我使用这样的东西:
async def check(wait_for):
print("Debug: check is awaited")
while True:
print("Debug: inside while")
await asyncio.sleep(wait_for)
print("after sleep")
transactions = parsing()
我调用的函数
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.create_task(check(30))
executor.start_polling(dp, skip_updates=True)
循环
但是如果我用webhook开始代码替换executor.start_polling
:
start_webhook(
dispatcher=dp,
webhook_path=WEBHOOK_PATH,
on_startup=on_startup,
on_shutdown=on_shutdown,
skip_updates=True,
host=WEBAPP_HOST,
port=WEBAPP_PORT
)
Check function打印“Debug:等待检查”和“调试:inside while”,然后webhook启动,函数停止工作。如何解决这个问题?
1条答案
按热度按时间dauxcl2d1#
创建自己的start_webhook函数,如下所示:
并将'loop'转发到'start_webhook':