对于多处理池,我可以使用参数'-c'来指定工作进程的数量。正如下面的节目所示。
celery worker -A celerytasks.celery_worker_init -c 5 --loglevel=info
但对于gevent池,参数'-c'用于指定greenlet编号。如何启动多个工作进程?
或者,如果我必须启动多个工作程序而不是一个具有多个进程的工作程序,我可以使用一个命令执行此操作吗?
答案 0 :(得分:2)
此命令将运行具有5个池进程的1个worker。这意味着你有一个工人能够执行5个任务。
如果你使用gevent,唯一的区别是芹菜将使用绿色线程而不是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