我如何在 Celery 中选择合适的工人类型?

How I can choose right type of worker in Celery?

我阅读了 Celery 的文档。我了解到并发可以通过不同的类型来实现:https://github.com/celery/celery/tree/master/celery/concurrency

如何选择合适的(例如多处理的 Gevent 或 eventlet)以及为什么?

另一个问题 - 我可以确定 .py 文件中的工人吗?或者我只能从命令行启动 worker?

我有两类任务: 1.working 与 SQL 数据库并将数据导出到 csv 文件。 2.execute 一些 sql 在数据库上

与其他任何事情一样,从最简单的解决方案开始(此处 - 使用默认并发模型 - prefork),如果您发现它不合适,请尝试其他方法。 KISS原则。

扩展@dejanlekic 所说的内容:

  1. 选择 multiprocessing / prefork 作为默认值,只有在有特殊原因时才偏离它。

  2. 在生产或类似生产的环境中,您应该使用 celery multi 和您选择的进程管理器从命令行启动 celery worker,例如 systemdsupervisord.