我注意到有两种不同的方式来运行芹菜工人。您可以使用或不使用
multi
命令后缀来启动工作程序:
celery multi start worker -A main.celery --concurrency=10
和
celery -A main.celery worker --concurrency=10
两者之间有区别吗?是否建议在生产中使用其中一种而不是另一种?
celery multi 更像是一个 CLI,用于管理一个或多个工作进程,并且主要用于交互式使用。在您的示例中,如果您使用
启动您的工作人员celery multi start worker -A main.celery --concurrency=10
它实际上将你的工作进程作为守护进程启动。一旦启动并运行,
celery multi
就会提供一系列与您的工作人员交互的命令,例如将其关闭。
“标准”
celery worker
命令在主线程中启动工作程序:
celery -A main.celery worker --concurrency=10
在生产环境中,我会使用标准(而不是多重)命令。这将实际运行工作程序的关注点与如何/在何处运行工作程序分开,例如 Docker 或 Procfile。