Задать вопрос
@DSmith

Много потоков — много соединений к базе, как исправить?

Задача следующего плана:
Есть 100-200 клиентов в базе. Есть крон скрипт, который раз в минуту обновляет некоторые данные для всех клиентов, делает вычисления и пишет это все в базу. Сами вычисления быстрые, но необходимо одновременно всем клиентам выполнять обновление, а не по очереди. Поэтому основной скрипт запускает пачками (по 20 штук) копии другого скриптам с небольшой паузой. Отсюда у нас создается очень много соединений с базой данных, т.к. есть и другие задачи и т.д. Периодически бывает, что из-за этого падает база данных. Можно ли как-то просто решить этот вопрос, чтобы и вычисления шли все также параллельно и не было сотней подключений к базе данных?
  • Вопрос задан
  • 226 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@Fixid
К сожалению просто ни как. Вам нужно или переиспользовать из некого пула или использовать единый для всех.
Варианты решения:
Запускать еще один скрипт который будет собирать/отдавать данные от остальных и записывать в базу через единственный коннект.
Нормально переписать скрипт на многопоточность
Использовать брокер очереди сообщений/Rabbitmq/redis pub/sub

p.s. нормальная базу спокойно держит не одну сотню соединений. Смотрите на ресурсы, если ещё есть то просто поднимите лимиты
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы