对于多处理池,我可以使用参数“-c”来指定工作进程的数量。如下所示。
celery worker -A celerytasks.celery_worker_init -c 5 --loglevel=info
但对于 gevent 池,参数 '-c' 用于指定 greenlet 数量。如何启动多个工作进程?
或者如果我必须启动多个 woker 而不是一个 worker 有多个进程,我可以用一个命令来完成吗?
最佳答案
此命令将运行 1 个 worker 和 5 个池进程。这意味着您有一个 worker 可以同时执行 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
关于python - 使用 gevent 时工作进程数的 Celery 命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37403709/