【发布时间】:2016-02-18 13:22:25
【问题描述】:
我将调度程序设置为“max_instances=10”。可以同时运行 10 个作业。有时某些作业被阻塞,它会挂在那里。当超过 10 个作业在那里阻塞时,除了“跳过:最大正在运行的实例数达到(10)”。 APScheduler 是否有办法设置作业持续时间的最大时间。如果作业运行超过最大时间,它将被终止。 如果没有办法,我该怎么办?
【问题讨论】:
标签: python apscheduler
我将调度程序设置为“max_instances=10”。可以同时运行 10 个作业。有时某些作业被阻塞,它会挂在那里。当超过 10 个作业在那里阻塞时,除了“跳过:最大正在运行的实例数达到(10)”。 APScheduler 是否有办法设置作业持续时间的最大时间。如果作业运行超过最大时间,它将被终止。 如果没有办法,我该怎么办?
【问题讨论】:
标签: python apscheduler
APScheduler 无法设置作业的最长运行时间。这主要是因为用于 PoolExecutors 的底层 concurrent.futures 包不支持这样的功能。一个子进程可能会被杀死,但缺少适当的 API,APScheduler 必须获得一个专门的执行程序来支持这一点,更不用说添加到允许超时的作业 API 了。这是下一个主要版本需要考虑的问题。
问题是,你想对仍在运行作业的线程做什么?由于线程不能被强制终止,唯一的选择是让它运行它,但它仍然会保持线程忙碌。
【讨论】: