【发布时间】:2021-02-09 13:04:24
【问题描述】:
上下文
我目前正在做一个基于 fastapi 的 API 类,它将能够管理令牌访问和访问时间。
目标
我想在访问期结束时自动从授权令牌列表中删除令牌。
它是如何工作的
我有一个主令牌,可用于随时通过给定路径生成访客令牌。还必须根据这种格式向 API 提供特定时间:
API_URL/generate_token/MASTER_TOKEN/ACCESS_TIME
这将返回一个新的访客令牌,其访问周期为给定的“access_time”值。
创建访客令牌后,我对其进行注册并在访问期结束时从threading 添加一个Timer,这将从注册的令牌中删除。
问题
我不想通过计时器为每个新的访客令牌创建一个新的“线程”,因为我希望主线程永久拥有优先权。而且我担心如果我有很多访客令牌,API 会因为所有线程的优先级交换而变得很慢。
替代品
我想到了sched 图书馆。但这带来了一个问题,即在我们使用该行启动之前创建的调度程序之前必须定义所有计划任务
scheduler.run()
问题是可以随时创建和注册新的访客令牌。所以我不知道如何正确处理。
任何帮助或研究轨迹将不胜感激。
【问题讨论】:
标签: python python-3.x asynchronous scheduled-tasks