Я использую Celery отдельно (не в Django). Я планирую иметь один рабочий тип задачи, работающий на нескольких физических машинах. Задача делает следующее
- Принять XML-документ.
- Преобразовать его.
- Записывать и записывать базы данных multiple.
Я использую PostgreSQL, но это применимо в равной степени к другим типам хранилища, использующим соединения. Раньше я использовал пул соединений с базами данных, чтобы избежать создания нового соединения с базой данных по каждому запросу или не слишком долго поддерживать соединение. Однако, поскольку каждый работник сельдерея работает в отдельном процессе, я не уверен, как они действительно смогут делиться пулом. Я что-то упускаю? Я знаю, что сельдерей позволяет вам сохранить результат, полученный от работника сельдерейца, но это не то, что я пытаюсь сделать здесь. Каждая задача может выполнять несколько различных обновлений или вставок в зависимости от обрабатываемых данных.
Каким образом можно получить доступ к базе данных у работника сельдерея?
Можно ли делиться пулом между несколькими рабочими/задачами или есть ли другой способ сделать это?