Как использовать Riak Ruby Client в многопоточном приложении
Как использовать RIAK ruby клиент в многопоточном режиме.
Чтобы привести пример..
Предположим, что вы используете ActiveRecord. Как разработчик, не нужно ничего настраивать, кроме указания размера пула в конфигурации базы данных.
ActiveRecord::Base.establish_connection(:user ... , pool: 20)
// Now I can safely use the connection(s) inside threads.
20.times { Thread.new { ActiveRecord::Base.connection.execute('select 1') } }
RIAK имеет библиотеку пула innertube, и я вижу, что она используется здесь и здесь. Но теперь уверен, как с этим работать.
Причина, потому что я вижу некоторые ||=
вызов используется в клиенте RIAK. Также результат Google привел меня к этому https://groups.google.com/forum/..
Так как ссылка на Google 5-6 лет, следовательно, пост.
В настоящее время я использую ConnectionPool
но опять же, это какое-то собственное ограничение, так как ему нужен клиент, который может автоматически переподключаться. Хотя я вижу, что RIAK выполняет некоторую внутреннюю проверку, подобную этой, но я не уверен, что ConnectionPool - это то, что нужно делать здесь.