rails-autoscale-que 1.7.0 → 1.7.1
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/lib/rails-autoscale-que.rb +1 -1
- metadata +7 -32
- data/Gemfile +0 -10
- data/Gemfile-activerecord-6-1 +0 -9
- data/Gemfile-activerecord-7-0 +0 -9
- data/Gemfile-que-1 +0 -10
- data/Rakefile +0 -11
- data/judoscale-que.gemspec +0 -30
- data/lib/judoscale/que/metrics_collector.rb +0 -76
- data/lib/judoscale/que/version.rb +0 -7
- data/lib/judoscale/que.rb +0 -15
- data/lib/judoscale-que.rb +0 -3
- data/rails-autoscale-que.gemspec +0 -30
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b21dacd63c8eea001a1f991407980e9c5df8cd2434a874e1084335643aa4ec1e
|
|
4
|
+
data.tar.gz: fc641c057bf2c3d1828c578cae58c6c9a9dc0fdff199504051bc03037dd79e18
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b3fc9d80db768b1590674bb25c4bfe2c542b69ca3b509c9c3bfb675c773dd26a141dfd4d3ef554066967bebfb45807945531a363263564bf813cad684b056ed9
|
|
7
|
+
data.tar.gz: b7f898473657f56fec12e2df0983f63ad5970488ca67c28c4f0dc383c9ddd8712cccbf059281da4629be1de82eb6b02ffcd3e275a6d7784e6fa5d4dac5bd7d23
|
data/lib/rails-autoscale-que.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails-autoscale-que
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.7.
|
|
4
|
+
version: 1.7.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam McCrea
|
|
@@ -10,36 +10,22 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2024-
|
|
13
|
+
date: 2024-07-08 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
|
-
name:
|
|
16
|
+
name: judoscale-que
|
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
|
18
18
|
requirements:
|
|
19
19
|
- - '='
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 1.7.
|
|
21
|
+
version: 1.7.1
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
26
|
- - '='
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: 1.7.
|
|
29
|
-
- !ruby/object:Gem::Dependency
|
|
30
|
-
name: que
|
|
31
|
-
requirement: !ruby/object:Gem::Requirement
|
|
32
|
-
requirements:
|
|
33
|
-
- - ">="
|
|
34
|
-
- !ruby/object:Gem::Version
|
|
35
|
-
version: '1.0'
|
|
36
|
-
type: :runtime
|
|
37
|
-
prerelease: false
|
|
38
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
39
|
-
requirements:
|
|
40
|
-
- - ">="
|
|
41
|
-
- !ruby/object:Gem::Version
|
|
42
|
-
version: '1.0'
|
|
28
|
+
version: 1.7.1
|
|
43
29
|
description:
|
|
44
30
|
email:
|
|
45
31
|
- hello@judoscale.com
|
|
@@ -47,18 +33,7 @@ executables: []
|
|
|
47
33
|
extensions: []
|
|
48
34
|
extra_rdoc_files: []
|
|
49
35
|
files:
|
|
50
|
-
- Gemfile
|
|
51
|
-
- Gemfile-activerecord-6-1
|
|
52
|
-
- Gemfile-activerecord-7-0
|
|
53
|
-
- Gemfile-que-1
|
|
54
|
-
- Rakefile
|
|
55
|
-
- judoscale-que.gemspec
|
|
56
|
-
- lib/judoscale-que.rb
|
|
57
|
-
- lib/judoscale/que.rb
|
|
58
|
-
- lib/judoscale/que/metrics_collector.rb
|
|
59
|
-
- lib/judoscale/que/version.rb
|
|
60
36
|
- lib/rails-autoscale-que.rb
|
|
61
|
-
- rails-autoscale-que.gemspec
|
|
62
37
|
homepage: https://judoscale.com
|
|
63
38
|
licenses:
|
|
64
39
|
- MIT
|
|
@@ -76,14 +51,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
76
51
|
requirements:
|
|
77
52
|
- - ">="
|
|
78
53
|
- !ruby/object:Gem::Version
|
|
79
|
-
version:
|
|
54
|
+
version: '0'
|
|
80
55
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
56
|
requirements:
|
|
82
57
|
- - ">="
|
|
83
58
|
- !ruby/object:Gem::Version
|
|
84
59
|
version: '0'
|
|
85
60
|
requirements: []
|
|
86
|
-
rubygems_version: 3.
|
|
61
|
+
rubygems_version: 3.5.11
|
|
87
62
|
signing_key:
|
|
88
63
|
specification_version: 4
|
|
89
64
|
summary: Autoscaling for Que workers.
|
data/Gemfile
DELETED
data/Gemfile-activerecord-6-1
DELETED
data/Gemfile-activerecord-7-0
DELETED
data/Gemfile-que-1
DELETED
data/Rakefile
DELETED
data/judoscale-que.gemspec
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
lib = File.expand_path("../lib", __FILE__)
|
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
-
require "judoscale/que/version"
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name = "judoscale-que"
|
|
7
|
-
spec.version = Judoscale::Que::VERSION
|
|
8
|
-
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
|
|
9
|
-
spec.email = ["hello@judoscale.com"]
|
|
10
|
-
|
|
11
|
-
spec.summary = "Autoscaling for Que workers."
|
|
12
|
-
spec.homepage = "https://judoscale.com"
|
|
13
|
-
spec.license = "MIT"
|
|
14
|
-
|
|
15
|
-
spec.metadata = {
|
|
16
|
-
"homepage_uri" => "https://judoscale.com",
|
|
17
|
-
"bug_tracker_uri" => "https://github.com/judoscale/judoscale-ruby/issues",
|
|
18
|
-
"documentation_uri" => "https://judoscale.com/docs",
|
|
19
|
-
"changelog_uri" => "https://github.com/judoscale/judoscale-ruby/blob/main/CHANGELOG.md",
|
|
20
|
-
"source_code_uri" => "https://github.com/judoscale/judoscale-ruby"
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
24
|
-
spec.require_paths = ["lib"]
|
|
25
|
-
|
|
26
|
-
spec.required_ruby_version = ">= 2.6.0"
|
|
27
|
-
|
|
28
|
-
spec.add_dependency "judoscale-ruby", Judoscale::Que::VERSION
|
|
29
|
-
spec.add_dependency "que", ">= 1.0"
|
|
30
|
-
end
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "judoscale/job_metrics_collector"
|
|
4
|
-
require "judoscale/job_metrics_collector/active_record_helper"
|
|
5
|
-
require "judoscale/metric"
|
|
6
|
-
|
|
7
|
-
module Judoscale
|
|
8
|
-
module Que
|
|
9
|
-
class MetricsCollector < Judoscale::JobMetricsCollector
|
|
10
|
-
include ActiveRecordHelper
|
|
11
|
-
|
|
12
|
-
METRICS_SQL = ActiveRecordHelper.cleanse_sql(<<~SQL)
|
|
13
|
-
SELECT queue, min(run_at)
|
|
14
|
-
FROM que_jobs
|
|
15
|
-
WHERE finished_at IS NULL
|
|
16
|
-
AND expired_at IS NULL
|
|
17
|
-
AND error_count = 0
|
|
18
|
-
AND id NOT IN (
|
|
19
|
-
SELECT (classid::bigint << 32) + objid::bigint AS id
|
|
20
|
-
FROM pg_locks
|
|
21
|
-
WHERE locktype = 'advisory'
|
|
22
|
-
)
|
|
23
|
-
GROUP BY 1
|
|
24
|
-
SQL
|
|
25
|
-
|
|
26
|
-
BUSY_METRICS_SQL = ActiveRecordHelper.cleanse_sql(<<~SQL)
|
|
27
|
-
SELECT queue, count(*)
|
|
28
|
-
FROM que_jobs
|
|
29
|
-
WHERE id IN (
|
|
30
|
-
SELECT (classid::bigint << 32) + objid::bigint AS id
|
|
31
|
-
FROM pg_locks
|
|
32
|
-
WHERE locktype = 'advisory'
|
|
33
|
-
)
|
|
34
|
-
GROUP BY 1
|
|
35
|
-
SQL
|
|
36
|
-
|
|
37
|
-
def self.adapter_config
|
|
38
|
-
Judoscale::Config.instance.que
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def self.collect?(config)
|
|
42
|
-
super && ActiveRecordHelper.table_exists?("que_jobs")
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def collect
|
|
46
|
-
metrics = []
|
|
47
|
-
t = Time.now.utc
|
|
48
|
-
|
|
49
|
-
run_at_by_queue = select_rows_silently(METRICS_SQL).to_h
|
|
50
|
-
self.queues |= run_at_by_queue.keys
|
|
51
|
-
|
|
52
|
-
if track_busy_jobs?
|
|
53
|
-
busy_count_by_queue = select_rows_silently(BUSY_METRICS_SQL).to_h
|
|
54
|
-
self.queues |= busy_count_by_queue.keys
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
queues.each do |queue|
|
|
58
|
-
run_at = run_at_by_queue[queue]
|
|
59
|
-
run_at = DateTime.parse(run_at) if run_at.is_a?(String)
|
|
60
|
-
latency_ms = run_at ? ((t - run_at) * 1000).ceil : 0
|
|
61
|
-
latency_ms = 0 if latency_ms < 0
|
|
62
|
-
|
|
63
|
-
metrics.push Metric.new(:qt, latency_ms, t, queue)
|
|
64
|
-
|
|
65
|
-
if track_busy_jobs?
|
|
66
|
-
busy_count = busy_count_by_queue[queue] || 0
|
|
67
|
-
metrics.push Metric.new(:busy, busy_count, Time.now, queue)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
log_collection(metrics)
|
|
72
|
-
metrics
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
data/lib/judoscale/que.rb
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "judoscale-ruby"
|
|
4
|
-
require "judoscale/config"
|
|
5
|
-
require "judoscale/que/version"
|
|
6
|
-
require "judoscale/que/metrics_collector"
|
|
7
|
-
require "que"
|
|
8
|
-
|
|
9
|
-
Judoscale.add_adapter :"judoscale-que",
|
|
10
|
-
{
|
|
11
|
-
adapter_version: Judoscale::Que::VERSION,
|
|
12
|
-
framework_version: ::Que::VERSION
|
|
13
|
-
},
|
|
14
|
-
metrics_collector: Judoscale::Que::MetricsCollector,
|
|
15
|
-
expose_config: Judoscale::Config::JobAdapterConfig.new(:que)
|
data/lib/judoscale-que.rb
DELETED
data/rails-autoscale-que.gemspec
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
lib = File.expand_path("../lib", __FILE__)
|
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
-
require "judoscale/que/version"
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name = "rails-autoscale-que"
|
|
7
|
-
spec.version = Judoscale::Que::VERSION
|
|
8
|
-
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
|
|
9
|
-
spec.email = ["hello@judoscale.com"]
|
|
10
|
-
|
|
11
|
-
spec.summary = "Autoscaling for Que workers."
|
|
12
|
-
spec.homepage = "https://judoscale.com"
|
|
13
|
-
spec.license = "MIT"
|
|
14
|
-
|
|
15
|
-
spec.metadata = {
|
|
16
|
-
"homepage_uri" => "https://judoscale.com",
|
|
17
|
-
"bug_tracker_uri" => "https://github.com/judoscale/judoscale-ruby/issues",
|
|
18
|
-
"documentation_uri" => "https://judoscale.com/docs",
|
|
19
|
-
"changelog_uri" => "https://github.com/judoscale/judoscale-ruby/blob/main/CHANGELOG.md",
|
|
20
|
-
"source_code_uri" => "https://github.com/judoscale/judoscale-ruby"
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
24
|
-
spec.require_paths = ["lib"]
|
|
25
|
-
|
|
26
|
-
spec.required_ruby_version = ">= 2.6.0"
|
|
27
|
-
|
|
28
|
-
spec.add_dependency "rails-autoscale-core", Judoscale::Que::VERSION
|
|
29
|
-
spec.add_dependency "que", ">= 1.0"
|
|
30
|
-
end
|