如何使用 APScheduler 设置作业持续时间限制?

hun*_*wnz 8 python apscheduler

我用“max_instances = 10”设置调度程序。可以同时运行10个作业。有时有些作业被阻塞,它会挂在那里。当超过10个作业在那里阻塞时,“跳过:运行的最大数量”的例外实例达到(10)”。APScheduler 是否有办法设置作业持续时间的最长时间。如果作业运行超过最长时间,它将被终止。如果没有办法,我该怎么办?

Ale*_*olm 8

APScheduler 无法设置作业的最大运行时间。这主要是因为用于 PoolExecutors 的底层并发.futures 包不支持此类功能。子进程可能会被终止,但缺乏适当的 API,APScheduler 必须获得专门的执行器来支持这一点,更不用说添加允许超时的作业 API。这是下一个主要版本需要考虑的事情。

问题是,您想对仍在运行作业的线程做什么?由于线程不能被强制终止,唯一的选择是让它继续运行,但它仍然会使线程保持忙碌状态。