VGrabko
@VGrabko
Golang, Php, Js

Как реализовать пулл?

Я хочу реализовать пулл. На ум пришло сделать мап с коннектами и сделать счётчик "открытых коннектов". После коннекта добавлять коннект в пул. При повторном использовании его удалять из мапа (не трогая счётчик), а как только он освободится обратно его вернуть в мап. А из мапа дёргать коннект рандомно. Если же свободных коннектов нету то проверить сколько вообще коннектов (значение счётчика) и если их меньше чем максимально доступное то создаём новый. В противном же случае кидаем в очередь (если изволите то добавте описание логики очереди в ответы)

Мне не нужен код. Я хочу узнать правильный ли у меня ход мыслей.
  • Вопрос задан
  • 546 просмотров
Решения вопроса 2
Извиняюсь,
тогда просто добавлю, что
старые соединения нужно(можно) убирать,
учесть обращения из разных потоков.
В случае достижения лимита, можно блокировать вызов ли возвращать fail
Зачем рандомный выбор - незачем.
Дополнительные проверки на корректность кода, учет двойных возвратов,
В идеале возврат можно было бы делать в деструторе ну или аналоге в этом языке, defer или или как там
Ответ написан
@Gizmothron
Рандомно дергать - лишнее. Если речь идет о коннектах к БД - то они идентичные.
И нужно не забывать возвращать в пул - тут может быть засада.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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