Ruby, MySQL: пул соединений, который находится за пределами rails framework? - PullRequest
2 голосов
/ 11 апреля 2010

Существует ли рубиновый гем или что-то подобное для пула соединений MySQL, который не является частью рельсов? У меня просто есть скрипт ruby ​​(опять же, я ничего не делаю с рельсами).

Ответы [ 3 ]

0 голосов
/ 11 апреля 2010

Если вы используете JRuby (с ActiveRecord и адаптером JDBC), вы можете сконфигурировать контейнер J2EE для обработки пула соединений с БД и передавать пул в database.yml через jndi, аналогичный здесь (пример с oracle) .

Также некоторые слайды для пулов MYSQL через ActiveRecord

ActiveRecord::Base.establish_connection(
  :adapter => 'mysql',
  :username => 'root',
  :password => '123456',
  :database => 'database',
  :pool => 5 # <- CONN POOL
)
0 голосов
/ 10 декабря 2012

Вы можете обернуть камень connection_pool вокруг пары отдельных соединений.

Примеры из документа (redis):

Пример использования с блоком (быстрее):

@pool = ConnectionPool.new { Redis.new }

@pool.with do |redis|
  redis.lpop('my-list') if redis.llen('my-list') > 0
end

Пример использования замены существующего соединения (медленнее):

$redis = ConnectionPool.wrap { Redis.new }

def do_work
  $redis.lpop('my-list') if $redis.llen('my-list') > 0
end
0 голосов
/ 11 апреля 2010

Пул бесшовных баз данных должен работать "с любым приложением ActiveRecord", а ActiveRecord прост в использовании без Rails. Я использовал ActiveRecord в простом Ruby-приложении, и это был всего лишь вопрос настройки регистратора и соединения с базой данных, что-то вроде

ActiveRecord::Base.logger = App.logger
dbconfig = YAML::load(File.open("#{APP_ROOT}/config/database.yml"))
ActiveRecord::Base.establish_connection(dbconfig[ENV["APP_ENV"]])

Я не использовал «Пул бесшовных баз данных» вне Rails, но не смог найти пулов соединений, предназначенных для простых приложений Ruby, после быстрого поиска, поэтому это может быть вашим лучшим выбором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...