rails-autoscale-que 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bee374e8fd44b4e4f4e8a6bdd7c99126124d8541884be3df4295f6a61d2fe6d6
4
- data.tar.gz: 5616ab915a67a420cecab35b47239834e7137b7eb1b571d6966a41a20f6039b8
3
+ metadata.gz: 3ebd5bed6afc65d8e3dd1da5e64c8ebf915fd104d0cecad546e54876f2352d6f
4
+ data.tar.gz: 452399f4355339098cd12676febdf2b4120d89f3153b70a0d95d8fc445db361a
5
5
  SHA512:
6
- metadata.gz: 765bfec943878b9de999b8e69512a32471e45e7f6bd68cd5903027fe0c54e31957ae97b69804f9815278d6759fac1df88f2a913e9da7f0312b77a05a58052967
7
- data.tar.gz: a9a0df37d1b2a76e213c46c2fd2de732c8830bbf04f1ed30fb81d1121fcda7096537517e7bfe49b3872c3130198ffb66a8c9e633a7229ef86513e216fa36b0f3
6
+ metadata.gz: 963f9fecc3c108cfb24a7a34d8e0b567a4818aea3f8ce69f978e0b8e568e3fc4bc1fb203b9352b39f42b0a66a9da8eed01ec5a1687acd62c5a2479d2bbf36a5b
7
+ data.tar.gz: d5d8bf23d7026f610a0d8850583df9a825355d50bdc98d510c3e3501a0cd6c6c8d45baabc204870c43503169681b32deddbf8ea9ed46c632df385bed66e261dd
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "judoscale/que"
3
+ require "judoscale-que"
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.0
4
+ version: 1.8.0
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-05-03 00:00:00.000000000 Z
13
+ date: 2024-07-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rails-autoscale-core
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.0
21
+ version: 1.8.0
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.0
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.8.0
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: 2.6.0
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.4.10
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
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec name: "judoscale-que"
4
-
5
- gem "judoscale-ruby", path: "../judoscale-ruby"
6
- gem "activerecord"
7
- gem "pg"
8
- gem "minitest"
9
- gem "rake"
10
- gem "debug"
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec name: "judoscale-que"
4
-
5
- gem "judoscale-ruby", path: "../judoscale-ruby"
6
- gem "activerecord", "~> 6.1"
7
- gem "pg"
8
- gem "minitest"
9
- gem "rake"
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec name: "judoscale-que"
4
-
5
- gem "judoscale-ruby", path: "../judoscale-ruby"
6
- gem "activerecord", "~> 7.0"
7
- gem "pg"
8
- gem "minitest"
9
- gem "rake"
data/Gemfile-que-1 DELETED
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec name: "judoscale-que"
4
-
5
- gem "judoscale-ruby", path: "../judoscale-ruby"
6
- gem "que", "~> 1.0"
7
- gem "activerecord"
8
- gem "pg"
9
- gem "minitest"
10
- gem "rake"
data/Rakefile DELETED
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rake/testtask"
4
-
5
- Rake::TestTask.new(:test) do |t|
6
- t.libs << "lib"
7
- t.libs << "test"
8
- t.test_files = FileList["test/**/*_test.rb"]
9
- end
10
-
11
- task default: :test
@@ -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
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Judoscale
4
- module Que
5
- VERSION = "1.7.0"
6
- end
7
- 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
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "judoscale/que"
@@ -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