我正在使用 Celery 独立(不在 Django 中)。我计划在多台物理机器上运行一种工作任务类型。该任务执行以下操作
- 接受 XML 文档。
- 改造它。
- 进行多个数据库读取和写入。
我正在使用 PostgreSQL,但这同样适用于使用连接的其他商店类型。过去,我使用数据库连接池来避免在每个请求上创建新的数据库连接或避免连接打开时间过长。但是,由于每个 Celery 工作人员都在单独的进程中运行,我不确定他们实际上如何能够共享池。我错过了什么吗?我知道 Celery 允许您保留从 Celery 工作人员返回的结果,但这不是我在这里想要做的。根据处理的数据,每个任务可以执行几个不同的更新或插入。
从 Celery 工作人员内部访问数据库的正确方法是什么?
是否可以在多个工作人员/任务之间共享一个池,或者是否有其他方法可以做到这一点?