【发布时间】:2023-02-01 20:51:26
【问题描述】:
我正在寻找结束处理警报的线程的方法。
现在我使用通过 concurrent.futures.thread.ThreadPoolExecutor 启动的线程,我有一个线程只是等待通过一个 queue.Queue 获得一个 datetime.datetime 对象,休眠直到达到 datetime 对象中指定的时间,然后发送警报通过另一个队列。
由于将重复安排警报并且程序预计会在更长的时间范围内运行,因此我不想使用threading.Timer 或asyncio.create_task 之类的解决方案,因为它们会为每个计划的警报生成新线程。有没有办法过早结束/杀死休眠线程,或者是否有比使用 ThreadPoolExecutor 和连续休眠线程更好的安排警报的方法?
【问题讨论】: