【发布时间】:2016-05-24 03:04:36
【问题描述】:
对于多处理池,我可以使用参数“-c”来指定工作进程的数量。如下所示。
celery worker -A celerytasks.celery_worker_init -c 5 --loglevel=info
但是对于gevent pool,参数'-c'用于指定greenlet编号。如何启动多个工作进程?
或者如果我必须启动多个唤醒者而不是一个具有多个进程的工作人员,我可以用一个命令来完成吗?
【问题讨论】:
对于多处理池,我可以使用参数“-c”来指定工作进程的数量。如下所示。
celery worker -A celerytasks.celery_worker_init -c 5 --loglevel=info
但是对于gevent pool,参数'-c'用于指定greenlet编号。如何启动多个工作进程?
或者如果我必须启动多个唤醒者而不是一个具有多个进程的工作人员,我可以用一个命令来完成吗?
【问题讨论】:
此命令将运行 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
【讨论】: