exercism-config 0.133.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: 54034ae264aab2f8c06d15e19777cb8e4d77db325a567370e832f5df74b21eef
4
- data.tar.gz: b8deba140712b3133104b1fd03cead4441ae2632b2fb0d9417c122b04aa2b943
3
+ metadata.gz: fc2a20353a3e1d2326d351ee69dc93fea45a96d850f90a64a5b6ee20dbf73cd4
4
+ data.tar.gz: b137d5fd9e58d38b20452ab0c448eef0e38cca981662500f401164e03760d7d5
5
5
  SHA512:
6
- metadata.gz: '078267a2c405d101523090e73b5f97a268046d566a5de03c0fa07f2a163a6464c417dc555ed27fcaa6da8bd5d2a5ee073ca920fc3db4d19660ccd8ac5f15be8b'
7
- data.tar.gz: aa752572631779e6d298f2a5b2492ce5fefc194880b131881368cae16f0c564bd30e91fb4e885a65d5a4c7fb28bac8221da947cc0932fc6b9350e936e8045750
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.133.0'.freeze
2
+ VERSION = '0.136.0'.freeze
3
3
  end
data/settings/ci.yml CHANGED
@@ -30,6 +30,7 @@ mysql_port: <%= ENV["MYSQL_PORT"] %>
30
30
  # S3 Config
31
31
  aws_submissions_bucket: exercism-v3-submissions
32
32
  aws_tooling_jobs_bucket: exercism-v3-tooling-jobs
33
+ aws_cache_bucket: exercism-cache
33
34
 
34
35
  # Hosts
35
36
  website_icons_host: https://assets.exercism.org
data/settings/local.yml CHANGED
@@ -31,6 +31,7 @@ mysql_port: null
31
31
  # S3 Config
32
32
  aws_submissions_bucket: exercism-v3-submissions
33
33
  aws_tooling_jobs_bucket: exercism-v3-tooling-jobs
34
+ aws_cache_bucket: exercism-cache
34
35
 
35
36
  # Hosts
36
37
  website_icons_host: https://assets.exercism.org
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.133.0
4
+ version: 0.136.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker