async-pool 0.8.1 → 0.9.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/async/pool/controller.rb +22 -15
- data/lib/async/pool/resource.rb +3 -3
- data/lib/async/pool/version.rb +1 -1
- data/lib/async/pool.rb +2 -2
- data.tar.gz.sig +0 -0
- metadata +6 -6
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 958468bc2e159bc6304f603d522ccc08fe967469bd463a992484f237e880ddf3
|
4
|
+
data.tar.gz: 2fcd90d3589cb71a9395b0e9b9810dc860bda4971c538e754d7a4113e1628ff0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a03eb3421cd11bc52ec995ddadd67c9e717763a69dbed5d8d27248f0b93ec9e824765eef5a8d02719968fc20f974d4b7690ec8a1e66fa6cc5d103f95f56ce0d
|
7
|
+
data.tar.gz: f4f19064995d171e013e5d80c90343387c733e9f13a4acd846c1534aee573ff7f75c5d3d41907919bdd83ff09bd1112e6a9d7f063ed66e4e072e91648220ae2b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -5,14 +5,14 @@
|
|
5
5
|
# Copyright, 2020, by Simon Perepelitsa.
|
6
6
|
# Copyright, 2024, by Thomas Morgan.
|
7
7
|
|
8
|
-
require
|
8
|
+
require "console/logger"
|
9
9
|
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
10
|
+
require "async"
|
11
|
+
require "async/notification"
|
12
|
+
require "async/semaphore"
|
13
13
|
|
14
|
-
require
|
15
|
-
require
|
14
|
+
require "traces"
|
15
|
+
require "metrics"
|
16
16
|
|
17
17
|
module Async
|
18
18
|
module Pool
|
@@ -29,7 +29,7 @@ module Async
|
|
29
29
|
# @parameter limit [Integer | Nil] The maximum number of resources that this pool can have at any given time. If nil, the pool can have an unlimited number of resources.
|
30
30
|
# @parameter concurrency [Integer] The maximum number of concurrent tasks that can be creating a new resource.
|
31
31
|
# @parameter policy [Policy] The pool policy.
|
32
|
-
def initialize(constructor, limit: nil, concurrency: (limit || 1), policy: nil)
|
32
|
+
def initialize(constructor, limit: nil, concurrency: (limit || 1), policy: nil, tags: nil)
|
33
33
|
@constructor = constructor
|
34
34
|
@limit = limit
|
35
35
|
|
@@ -39,6 +39,8 @@ module Async
|
|
39
39
|
@policy = policy
|
40
40
|
@gardener = nil
|
41
41
|
|
42
|
+
@tags = Metrics::Tags.normalize(tags)
|
43
|
+
|
42
44
|
# All available resources:
|
43
45
|
@resources = {}
|
44
46
|
|
@@ -96,6 +98,9 @@ module Async
|
|
96
98
|
# @attribute [Hash(Resource, Integer)] all allocated resources, and their associated usage.
|
97
99
|
attr :resources
|
98
100
|
|
101
|
+
# @attribute [Array(String)] The name of the pool.
|
102
|
+
attr_accessor :tags
|
103
|
+
|
99
104
|
# The number of resources in the pool.
|
100
105
|
def size
|
101
106
|
@resources.size
|
@@ -388,40 +393,42 @@ module Async
|
|
388
393
|
concurrency: @guard.limit,
|
389
394
|
size: @resources.size,
|
390
395
|
limit: @limit,
|
396
|
+
tags: @tags,
|
391
397
|
}
|
392
398
|
|
393
|
-
Traces.trace(
|
399
|
+
Traces.trace("async.pool.create", attributes: attributes) {super}
|
394
400
|
end
|
395
401
|
|
396
402
|
def drain(...)
|
397
403
|
attributes = {
|
398
404
|
size: @resources.size,
|
405
|
+
tags: @tags,
|
399
406
|
}
|
400
407
|
|
401
|
-
Traces.trace(
|
408
|
+
Traces.trace("async.pool.drain", attributes: attributes) {super}
|
402
409
|
end
|
403
410
|
end
|
404
411
|
|
405
412
|
Metrics::Provider(self) do
|
406
|
-
ACQUIRE_COUNT = Metrics.metric(
|
407
|
-
RELEASE_COUNT = Metrics.metric(
|
408
|
-
RETIRE_COUNT = Metrics.metric(
|
413
|
+
ACQUIRE_COUNT = Metrics.metric("async.pool.acquire", :counter, description: "Number of times a resource was invoked.")
|
414
|
+
RELEASE_COUNT = Metrics.metric("async.pool.release", :counter, description: "Number of times a resource was released.")
|
415
|
+
RETIRE_COUNT = Metrics.metric("async.pool.retire", :counter, description: "Number of times a resource was retired.")
|
409
416
|
|
410
417
|
def acquire(...)
|
411
|
-
ACQUIRE_COUNT.emit(1)
|
418
|
+
ACQUIRE_COUNT.emit(1, tags: @tags)
|
412
419
|
|
413
420
|
super
|
414
421
|
end
|
415
422
|
|
416
423
|
def release(...)
|
417
424
|
super.tap do
|
418
|
-
RELEASE_COUNT.emit(1)
|
425
|
+
RELEASE_COUNT.emit(1, tags: @tags)
|
419
426
|
end
|
420
427
|
end
|
421
428
|
|
422
429
|
def retire(...)
|
423
430
|
super.tap do
|
424
|
-
RETIRE_COUNT.emit(1)
|
431
|
+
RETIRE_COUNT.emit(1, tags: @tags)
|
425
432
|
end
|
426
433
|
end
|
427
434
|
end
|
data/lib/async/pool/resource.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
# Released under the MIT License.
|
4
4
|
# Copyright, 2019-2024, by Samuel Williams.
|
5
5
|
|
6
|
-
require
|
6
|
+
require "console/logger"
|
7
7
|
|
8
|
-
require
|
9
|
-
require
|
8
|
+
require "async/notification"
|
9
|
+
require "async/semaphore"
|
10
10
|
|
11
11
|
module Async
|
12
12
|
module Pool
|
data/lib/async/pool/version.rb
CHANGED
data/lib/async/pool.rb
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-pool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -40,7 +40,7 @@ cert_chain:
|
|
40
40
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
41
41
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
42
42
|
-----END CERTIFICATE-----
|
43
|
-
date: 2024-
|
43
|
+
date: 2024-10-12 00:00:00.000000000 Z
|
44
44
|
dependencies:
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: async
|
@@ -60,16 +60,16 @@ dependencies:
|
|
60
60
|
name: metrics
|
61
61
|
requirement: !ruby/object:Gem::Requirement
|
62
62
|
requirements:
|
63
|
-
- - "
|
63
|
+
- - "~>"
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: '0'
|
65
|
+
version: '0.11'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
68
|
version_requirements: !ruby/object:Gem::Requirement
|
69
69
|
requirements:
|
70
|
-
- - "
|
70
|
+
- - "~>"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: '0'
|
72
|
+
version: '0.11'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: traces
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|