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