4

我的脚本有多个组件,只有部分需要nice-die,以低优先级运行。

有没有办法nice只使用一种 Python 方法,或者我需要将其分解为多个进程?

我正在使用 Linux,如果这很重要的话。

4

1 回答 1

7

您可以编写一个装饰器,在进入和退出时调整正在运行的进程:

import os
import functools

def low_priority(f):
    @functools.wraps(f)
    def reniced(*args, **kwargs):
        os.nice(5)
        try:
            f(*args,**kwargs)
        finally:
            os.nice(-5)
    return reniced

然后你可以这样使用它:

@low_priority
def test():
    pass # Or whatever you want to do.

免责声明:

  1. 在我的机器上工作,不确定 os.nice 有多普遍。
  2. 如下所述,它是否有效可能取决于您的操作系统/发行版,或者是根用户。
  3. Nice 是基于每个进程的。每个进程具有多个线程的行为可能不正常,并且可能会崩溃。
于 2013-01-26T04:19:17.560 回答