Как должна происходить работа с БД при работе воркеров в очередях? Например, я использую Gearman, пишу воркер, который бесконечно слушает свою "очередь". При поступлении задачи он делает запрос, обрабатывает данные и записывает результат в базу.
Если подключение создавать в начале, и оно будет открытым всегда, это, наверное, не совсем корректно (да и отвалится по таймауту). А если делать подключение при каждом исполнении задачи - не разумно (допустим, пришло в секунду 10 задач - и 10 раз в секунду произошло подключение/отключение).
Как вариант - заведите себе внутри воркера таймаут для отключения от сервера БД. Т.е. начал работать воркер, поступила задача - подключились к БД и обработали. Потом если в течение 30 секунд не было ни одной задачи - отключились от БД.