Мне нужно вызвать микросервис (M1) из другого микросервиса (M2). И поскольку к M1 будет много запросов http, я использую пул соединений и постоянный гем, пожалуйста, проверьте ссылку https://www.rubydoc.info/gems/persistent_http/2.0.3. Я сделал два метода в классе как self-send_get_message и self-send_post_message. Поэтому всякий раз, когда мне нужно сделать запрос, я вызываю метод напрямую по ссылке на класс. Это правильный способ определения пула и использования методов Get и Post.
class HttpClientPool
@@persistent_http = PersistentHTTP.new(
name: 'MyHTTPClient',
logger: Rails.logger,
pool_size: 10,
warn_timeout: 0.25,
force_retry: true,
url: "http://m1.com/",
read_timeout: 2,
open_timeout: 1,
)
@@x = 1
def self.send_get_message(path)
puts "--path = #{path}"
@@x= @@x+1
puts "---var is #{@@x}"
request = Net::HTTP::Get.new(path)
@@persistent_http.request(request)
end
end
Теперь, когда я вызываю HttpClientPool.send_get_message для отправки запроса на получение и печати @@ x, значение должно увеличиваться. Когда я делаю это на локальной машине - кажется, все в порядке. Но когда я развертываюсь на удаленном сервере, значение @@ x получается случайным образом в основном 2,3,4,5,6 и, похоже, не увеличивается постоянно.