exercism-config 0.134.0 → 0.136.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe993510776176bab58bd7b3fa528ecadc014db49f2dec77e3492b8eb2281547
4
- data.tar.gz: a7b4fdab21b0d45522834cc621a1fdb6cc3d80ca89678f2a831e54ffd2976f10
3
+ metadata.gz: fc2a20353a3e1d2326d351ee69dc93fea45a96d850f90a64a5b6ee20dbf73cd4
4
+ data.tar.gz: b137d5fd9e58d38b20452ab0c448eef0e38cca981662500f401164e03760d7d5
5
5
  SHA512:
6
- metadata.gz: b2e3c204da2ac55738604eb26172ce32dece614cdee0e1de6b87543385eb1f33a8f2a413fb5fe00d2a64bb3441dad5b7cb5ae743a817bd0f69724ebf8f1c25e2
7
- data.tar.gz: a3dffbe507c4bba51ad3e51385839bb1cd033c84bb345f401c52b124fde8304e6789967b3691c7eac7e07b8865816c997d1c4a4e142fd0118199aa79308d6436
6
+ metadata.gz: e9f5097478f3fdb51f09738ece092c39c1891c746cf7b935c8dbeabaf08d83cf83b6556fd9265278f43c4d1b3f1200454a140e0f8bcd9aba1a65b49823d0bec8
7
+ data.tar.gz: 92d50d684d5e39c0cf0cc3da6a88e66a8604544130955c332552e7cab58e604ab497c619dedef84650beaf9391f4e2e440e419a1c7a8cdd040f6bd08859d38ef
data/lib/exercism.rb CHANGED
@@ -33,13 +33,24 @@ module Exercism
33
33
  Aws::DynamoDB::Client.new(ExercismConfig::GenerateAwsSettings.())
34
34
  end
35
35
 
36
+ S3_CLIENT_MUTEX = Mutex.new
37
+
38
+ # Memoized so the SDK's connection pool is reused, with a raised
39
+ # http_idle_timeout (default 5s) so pooled connections survive quiet
40
+ # spells on low-QPS paths instead of paying a TLS handshake each time.
41
+ # The mutex guarantees exactly one client per process.
36
42
  def self.s3_client
37
- require 'aws-sdk-s3'
38
- Aws::S3::Client.new(
39
- ExercismConfig::GenerateAwsSettings.().merge(
40
- force_path_style: true
41
- )
42
- )
43
+ S3_CLIENT_MUTEX.synchronize do
44
+ @s3_client ||= begin
45
+ require 'aws-sdk-s3'
46
+ Aws::S3::Client.new(
47
+ ExercismConfig::GenerateAwsSettings.().merge(
48
+ force_path_style: true,
49
+ http_idle_timeout: 60
50
+ )
51
+ )
52
+ end
53
+ end
43
54
  end
44
55
 
45
56
  def self.ecr_client
@@ -1,3 +1,3 @@
1
1
  module ExercismConfig
2
- VERSION = '0.134.0'.freeze
2
+ VERSION = '0.136.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exercism-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.134.0
4
+ version: 0.136.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker