graphiti 1.6.2 → 1.6.4
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
- data/CHANGELOG.md +9 -0
- data/lib/graphiti/configuration.rb +0 -15
- data/lib/graphiti/resource/interface.rb +4 -4
- data/lib/graphiti/resource_proxy.rb +3 -2
- data/lib/graphiti/scope.rb +1 -18
- data/lib/graphiti/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60dd55a9db78fcc197c66de85b88bd69e840462d77a679dbb76fcd41b040dbe1
|
4
|
+
data.tar.gz: e6a2cdefe4435864ea9101c94ac122d3c11ba0e85b7284f19a08f5ec4a3cee0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2264e0a1313762c00ffb96fbb80c60bbc7d6406e37fedc8eef0a9b813b6bc5d5ff9443ca165d2afcf7499c61f9746a0d851b699b9ec5f90ba5ca74c16932c428
|
7
|
+
data.tar.gz: 74d51069de9047b07d213c628889766d54d8e8c43812d75a433247e70bc2b027dc7735e310bd0460a36e37083c7a9306dddbeb5d15b0160987cb8f5a65daaa93
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
graphiti changelog
|
2
2
|
|
3
|
+
## [1.6.4](https://github.com/graphiti-api/graphiti/compare/v1.6.3...v1.6.4) (2024-03-27)
|
4
|
+
|
5
|
+
## [1.6.3](https://github.com/graphiti-api/graphiti/compare/v1.6.2...v1.6.3) (2024-03-26)
|
6
|
+
|
7
|
+
|
8
|
+
### Bug Fixes
|
9
|
+
|
10
|
+
* Remove thread pool executor logic until we get a better handle on what's causing thread pool hangs. refs [#469](https://github.com/graphiti-api/graphiti/issues/469) ([7941b6f](https://github.com/graphiti-api/graphiti/commit/7941b6f75ce1001b034ed6e83c148b893e9f3d99)), closes [#471](https://github.com/graphiti-api/graphiti/issues/471) [#470](https://github.com/graphiti-api/graphiti/issues/470)
|
11
|
+
|
3
12
|
## [1.6.2](https://github.com/graphiti-api/graphiti/compare/v1.6.1...v1.6.2) (2024-03-22)
|
4
13
|
|
5
14
|
|
@@ -8,20 +8,6 @@ module Graphiti
|
|
8
8
|
# Defaults to false OR if classes are cached (Rails-only)
|
9
9
|
attr_accessor :concurrency
|
10
10
|
|
11
|
-
# This number must be considered in accordance with the database
|
12
|
-
# connection pool size configured in `database.yml`. The connection
|
13
|
-
# pool should be large enough to accommodate both the foreground
|
14
|
-
# threads (ie. web server or job worker threads) and background
|
15
|
-
# threads. For each process, Graphiti will create one global
|
16
|
-
# executor that uses this many threads to sideload resources
|
17
|
-
# asynchronously. Thus, the pool size should be at least
|
18
|
-
# `thread_count + concurrency_max_threads + 1`. For example, if your
|
19
|
-
# web server has a maximum of 3 threads, and
|
20
|
-
# `concurrency_max_threads` is set to 4, then your pool size should
|
21
|
-
# be at least 8.
|
22
|
-
# @return [Integer] Maximum number of threads to use when fetching sideloads concurrently
|
23
|
-
attr_accessor :concurrency_max_threads
|
24
|
-
|
25
11
|
attr_accessor :respond_to
|
26
12
|
attr_accessor :context_for_endpoint
|
27
13
|
attr_accessor :links_on_demand
|
@@ -40,7 +26,6 @@ module Graphiti
|
|
40
26
|
def initialize
|
41
27
|
@raise_on_missing_sideload = true
|
42
28
|
@concurrency = false
|
43
|
-
@concurrency_max_threads = 4
|
44
29
|
@respond_to = [:json, :jsonapi, :xml]
|
45
30
|
@links_on_demand = false
|
46
31
|
@pagination_links_on_demand = false
|
@@ -5,7 +5,7 @@ module Graphiti
|
|
5
5
|
|
6
6
|
class_methods do
|
7
7
|
def all(params = {}, base_scope = nil)
|
8
|
-
|
8
|
+
validate_request!(params)
|
9
9
|
_all(params, {}, base_scope)
|
10
10
|
end
|
11
11
|
|
@@ -17,7 +17,7 @@ module Graphiti
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def find(params = {}, base_scope = nil)
|
20
|
-
|
20
|
+
validate_request!(params)
|
21
21
|
_find(params, base_scope)
|
22
22
|
end
|
23
23
|
|
@@ -38,14 +38,14 @@ module Graphiti
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def build(params, base_scope = nil)
|
41
|
-
|
41
|
+
validate_request!(params)
|
42
42
|
runner = Runner.new(self, params)
|
43
43
|
runner.proxy(base_scope, single: true, raise_on_missing: true)
|
44
44
|
end
|
45
45
|
|
46
46
|
private
|
47
47
|
|
48
|
-
def
|
48
|
+
def validate_request!(params)
|
49
49
|
return if Graphiti.context[:graphql] || !validate_endpoints?
|
50
50
|
|
51
51
|
if context&.respond_to?(:request)
|
@@ -74,6 +74,7 @@ module Graphiti
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
alias_method :to_a, :data
|
77
|
+
alias_method :resolve_data, :data
|
77
78
|
|
78
79
|
def meta
|
79
80
|
@meta ||= data.respond_to?(:meta) ? data.meta : {}
|
@@ -136,7 +137,7 @@ module Graphiti
|
|
136
137
|
end
|
137
138
|
|
138
139
|
def destroy
|
139
|
-
|
140
|
+
resolve_data
|
140
141
|
transaction_response = @resource.transaction do
|
141
142
|
metadata = {method: :destroy}
|
142
143
|
model = @resource.destroy(@query.filters[:id], metadata)
|
@@ -154,7 +155,7 @@ module Graphiti
|
|
154
155
|
end
|
155
156
|
|
156
157
|
def update
|
157
|
-
|
158
|
+
resolve_data
|
158
159
|
save(action: :update)
|
159
160
|
end
|
160
161
|
|
data/lib/graphiti/scope.rb
CHANGED
@@ -2,23 +2,6 @@ module Graphiti
|
|
2
2
|
class Scope
|
3
3
|
attr_accessor :object, :unpaginated_object
|
4
4
|
attr_reader :pagination
|
5
|
-
|
6
|
-
@@thread_pool_executor_mutex = Mutex.new
|
7
|
-
|
8
|
-
def self.thread_pool_executor
|
9
|
-
return @thread_pool_executor if @thread_pool_executor
|
10
|
-
|
11
|
-
concurrency = Graphiti.config.concurrency_max_threads || 4
|
12
|
-
@@thread_pool_executor_mutex.synchronize do
|
13
|
-
@@thread_pool_executor ||= Concurrent::ThreadPoolExecutor.new(
|
14
|
-
min_threads: 0,
|
15
|
-
max_threads: concurrency,
|
16
|
-
max_queue: concurrency * 4,
|
17
|
-
fallback_policy: :caller_runs
|
18
|
-
)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
5
|
def initialize(object, resource, query, opts = {})
|
23
6
|
@object = object
|
24
7
|
@resource = resource
|
@@ -66,7 +49,7 @@ module Graphiti
|
|
66
49
|
@resource.adapter.close if concurrent
|
67
50
|
}
|
68
51
|
if concurrent
|
69
|
-
promises << Concurrent::Promise.execute(
|
52
|
+
promises << Concurrent::Promise.execute(&resolve_sideload)
|
70
53
|
else
|
71
54
|
resolve_sideload.call
|
72
55
|
end
|
data/lib/graphiti/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: graphiti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lee Richmond
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jsonapi-serializable
|