如何在Python中创建异步计时器?

如何在Python中创建异步计时器?,python,python-asyncio,python-multithreading,Python,Python Asyncio,Python Multithreading,我想用Python创建一个30秒的计时器,使用async,但我不知道该怎么做 我尝试使用此代码,但它阻止了所有代码: def restore_存在(自我,循环): 异步def func(): db,c=self.connect() c、 执行(“从教师中选择Presenza”) presence=c.fetchall() 对于存在的项目: c、 执行('UPDATE Teachers SET Presenza=?',('no',)) db.commit() db.close() threadin

我想用Python创建一个30秒的计时器,使用
async
,但我不知道该怎么做

我尝试使用此代码,但它阻止了所有代码:

def restore_存在(自我,循环):
异步def func():
db,c=self.connect()
c、 执行(“从教师中选择Presenza”)
presence=c.fetchall()
对于存在的项目:
c、 执行('UPDATE Teachers SET Presenza=?',('no',))
db.commit()
db.close()
threading.Thread(target=lambda循环:loop.run_,直到_完成(func()),args=(循环,).start()
#这阻止了我的代码
t=计时器(30,self.restore\u presence,args=[asyncio.get\u event\u loop()]))
t、 开始()
t、 加入
#这阻止了我的代码

async
函数运行得很好。

如果不想等待线程,请不要调用join…这只是开始。为什么同时使用异步和线程?好的,谢谢。但是我可以保存计时器,这样当我关闭程序并重新打开它时,它会继续吗?例如,30秒计时器。我关闭程序,当我在10秒后打开它时,计时器是20秒。好吧,你可以保存计时器计数器,然后从最后一个计数器点再次启动它…如果你不想等待线程,可能会重复Do not call join…这只是开始。为什么同时使用异步和线程?好的,谢谢。但是我可以保存计时器,这样当我关闭程序并重新打开它时,它会继续吗?例如,30秒计时器。我关闭程序,当我在10秒后打开它时,计时器是20秒。好的,你可以保存计时器计数器,然后从最后一个计数器点重新启动它…可能是重复的