【问题标题】:Celery command line parameter for number of worker processes when using gevent使用 gevent 时工作进程数的 Celery 命令行参数
【发布时间】:2016-05-24 03:04:36
【问题描述】:

对于多处理池,我可以使用参数“-c”来指定工作进程的数量。如下所示。

celery worker -A celerytasks.celery_worker_init -c 5 --loglevel=info

但是对于gevent pool,参数'-c'用于指定greenlet编号。如何启动多个工作进程?

或者如果我必须启动多个唤醒者而不是一个具有多个进程的工作人员,我可以用一个命令来完成吗?

【问题讨论】:

    标签: python celery


    【解决方案1】:

    此命令将运行 1 个具有 5 个池进程的工作人员。这意味着您有一个工人可以同时执行 5 个任务。

    如果你使用 gevent 唯一的区别是 celery 将使用绿色线程而不是 prefork 来执行这个任务,但是要注意这意味着你可以read here (它是关于 eventlet 但同样的概念适用)。

    如果您想使用不同的参数(队列、并发)运行多个工作程序,则需要使用celery multi command

    celery multi start 3 -c 3 -c:1 10
    celery worker -n celery1@myhost -c 10
    celery worker -n celery2@myhost -c 3
    celery worker -n celery3@myhost -c 3
    

    【讨论】:

    • 那么,如果我使用 Superivisored 来管理 celery,我必须用“numprocs”指定进程号,而不是直接在命令行中使用一些参数?
    • 您好,您可以在这里找到答案,即使您可能不喜欢它。 stackoverflow.com/questions/15558875/…
    • 我最终在主管配置文件中使用了“numprocs”,到目前为止一切看起来都很好。我不想使用 celery multi,因为我认为主管不应该使用已经守护进程的命令。
    • 你可能想回答你自己的问题或接受我的正确而不是
    猜你喜欢
    • 2016-09-21
    • 2014-08-30
    • 2012-03-11
    • 2011-09-06
    • 1970-01-01
    • 2012-10-23
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多