【问题标题】:Can i use python os.nice to lower the niceness of a celery task?我可以使用 python os.nice 来降低 celery 任务的美观度吗?
【发布时间】:2013-11-08 11:07:38
【问题描述】:

我可以使用 python os.nice 来降低 celery 任务的 niceness 吗?

我在想这样的事情:

@task()
def maintenance_requests():
    os.nice(5)
    request = requests.session()
    request.get('http://maintenance/', params={})

还有其他方法吗?

提前致谢!

编辑:由于我的应用程序是 IO 绑定的,我发现 ionice 是我需要的命令。做了一些测试,它就像一个魅力。谢谢

【问题讨论】:

    标签: python django task django-celery


    【解决方案1】:

    我认为你不能指定特定 Celery 任务的好坏,因为好坏是进程的属性。任务只是在 Celery worker 上运行的一些代码。

    但是,您可以使用 Celery 的 task routing configuration 设置一个友好度较低的 Celery 工作人员并将维护任务路由给该工作人员。

    【讨论】:

    • 你可以运行 nice -n 5 ... 其中... 是你的 celery 命令。
    • 好的。谢谢。将对此主题进行更多研究。
    • 好吧,我曾经很好地运行过worker。经过一些测试,我的基准测试为不同的 nice 值返回了相似的值。也许是因为我的工作人员的 IO 绑定.....
    • @luistm,如果您的工作人员受 IO 限制,可以尝试使用 ionice 而不是 nice。
    • @tjanes:这就是我在编辑中所说的 :)。还是谢谢!
    猜你喜欢
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 2019-02-20
    相关资源
    最近更新 更多