Update pubsub to use client pool

This commit is contained in:
Omar Roth 2019-11-01 07:34:36 -04:00
parent f776d67c03
commit 833a60f29c
No known key found for this signature in database
GPG Key ID: B8254FB7EC3D37F2
2 changed files with 6 additions and 4 deletions

View File

@ -127,6 +127,8 @@ def subscribe_to_feeds(db, logger, key, config)
end end
max_channel = Channel(Int32).new max_channel = Channel(Int32).new
client_pool = HTTPPool.new(PUBSUB_URL, capacity: max_threads, timeout: 0.05)
spawn do spawn do
max_threads = max_channel.receive max_threads = max_channel.receive
active_threads = 0 active_threads = 0
@ -147,12 +149,13 @@ def subscribe_to_feeds(db, logger, key, config)
spawn do spawn do
begin begin
response = subscribe_pubsub(ucid, key, config) response = subscribe_pubsub(ucid, key, config, client_pool)
if response.status_code >= 400 if response.status_code >= 400
logger.puts("#{ucid} : #{response.body}") logger.puts("#{ucid} : #{response.body}")
end end
rescue ex rescue ex
logger.puts("#{ucid} : #{ex.message}")
end end
active_channel.send(true) active_channel.send(true)

View File

@ -1949,7 +1949,7 @@ def sha256(text)
return digest.hexdigest return digest.hexdigest
end end
def subscribe_pubsub(topic, key, config) def subscribe_pubsub(topic, key, config, client_pool)
case topic case topic
when .match(/^UC[A-Za-z0-9_-]{22}$/) when .match(/^UC[A-Za-z0-9_-]{22}$/)
topic = "channel_id=#{topic}" topic = "channel_id=#{topic}"
@ -1961,7 +1961,6 @@ def subscribe_pubsub(topic, key, config)
# TODO # TODO
end end
client = make_client(PUBSUB_URL)
time = Time.utc.to_unix.to_s time = Time.utc.to_unix.to_s
nonce = Random::Secure.hex(4) nonce = Random::Secure.hex(4)
signature = "#{time}:#{nonce}" signature = "#{time}:#{nonce}"
@ -1977,7 +1976,7 @@ def subscribe_pubsub(topic, key, config)
"hub.secret" => key.to_s, "hub.secret" => key.to_s,
} }
return client.post("/subscribe", form: body) return client_pool.client &.post("/subscribe", form: body)
end end
def parse_range(range) def parse_range(range)