rails-autoscale-good_job 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fae95bbc32105e0e62223062716646d4b69d45d014f48650fa0cfca4c8a4dcd3
4
- data.tar.gz: bd88d5a40f59d833445a64cb6db5cf0ca9e8d925653481bfa97913c93474405d
3
+ metadata.gz: 2f4f0ab846249e5f8b445270c7cfa78d30e35d1be6630d30d10eaf05cec5b2af
4
+ data.tar.gz: ec41daa6426f66ed1a8e70ebed17f45c4e572309804353f63bcec1e1a3997b7b
5
5
  SHA512:
6
- metadata.gz: e452af9304d4a60c7868327b62ae21bccbf9d476d4fe6eb7e5bd468cb3d11760d04a79731a7f6216ab8b3592710de31b03cfba7b0b1de8b0d32e76ccb0a6adf1
7
- data.tar.gz: 680671ce600b136d81854326305d2a7d78a62e70ba254aca6f080bb7de14d5d6313a5a44aa493400e4013779c2b44bfa6da05237419d4c82a547a616fcfa5db3
6
+ metadata.gz: 814dbe81d43c288883d4bc20577ac0ea33145eb664bb22c91226f0d0ec5f943462a7e7235618cd5cdccdcc0973a40796f018b93b879713dc820804f0216d5c03
7
+ data.tar.gz: 55dd89f11e37c1c57e3356ffcef8861374166b674601cc07c8b11c02f78c2c18d871f1dc9d032cfcb3162a3f1970faa5f9e50086347966b4c513b5f88a6799d1
@@ -1,3 +1,3 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "judoscale/good_job"
3
+ require "judoscale-good_job"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-autoscale-good_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
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-05-03 00:00:00.000000000 Z
13
+ date: 2024-07-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rails-autoscale-core
16
+ name: judoscale-good_job
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.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.0
29
- - !ruby/object:Gem::Dependency
30
- name: good_job
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: '3.0'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: '3.0'
28
+ version: 1.7.1
43
29
  description:
44
30
  email:
45
31
  - hello@judoscale.com
@@ -47,17 +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
- - Rakefile
54
- - judoscale-good_job.gemspec
55
- - lib/judoscale-good_job.rb
56
- - lib/judoscale/good_job.rb
57
- - lib/judoscale/good_job/metrics_collector.rb
58
- - lib/judoscale/good_job/version.rb
59
36
  - lib/rails-autoscale-good_job.rb
60
- - rails-autoscale-good_job.gemspec
61
37
  homepage: https://judoscale.com
62
38
  licenses:
63
39
  - MIT
@@ -75,14 +51,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
75
51
  requirements:
76
52
  - - ">="
77
53
  - !ruby/object:Gem::Version
78
- version: 2.6.0
54
+ version: '0'
79
55
  required_rubygems_version: !ruby/object:Gem::Requirement
80
56
  requirements:
81
57
  - - ">="
82
58
  - !ruby/object:Gem::Version
83
59
  version: '0'
84
60
  requirements: []
85
- rubygems_version: 3.4.10
61
+ rubygems_version: 3.5.11
86
62
  signing_key:
87
63
  specification_version: 4
88
64
  summary: Autoscaling for Good Job workers.
data/Gemfile DELETED
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec name: "judoscale-good_job"
4
-
5
- gem "judoscale-ruby", path: "../judoscale-ruby"
6
- gem "activerecord"
7
- gem "pg"
8
- gem "minitest"
9
- gem "rake"
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec name: "judoscale-good_job"
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-good_job"
4
-
5
- gem "judoscale-ruby", path: "../judoscale-ruby"
6
- gem "activerecord", "~> 7.0"
7
- gem "pg"
8
- gem "minitest"
9
- 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/good_job/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "judoscale-good_job"
7
- spec.version = Judoscale::GoodJob::VERSION
8
- spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
9
- spec.email = ["hello@judoscale.com"]
10
-
11
- spec.summary = "Autoscaling for Good Job 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::GoodJob::VERSION
29
- spec.add_dependency "good_job", ">= 3.0"
30
- end
@@ -1,70 +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 GoodJob
9
- class MetricsCollector < Judoscale::JobMetricsCollector
10
- include ActiveRecordHelper
11
-
12
- def self.adapter_config
13
- Judoscale::Config.instance.good_job
14
- end
15
-
16
- def self.collect?(config)
17
- super && ActiveRecordHelper.table_exists_for_model?(::GoodJob::Execution)
18
- end
19
-
20
- def initialize
21
- super
22
-
23
- queue_names = run_silently do
24
- ::GoodJob::Execution.select("distinct queue_name").map(&:queue_name)
25
- end
26
- self.queues |= queue_names
27
- end
28
-
29
- def collect
30
- metrics = []
31
- time = Time.now.utc
32
-
33
- # logically we don't need the finished_at condition, but it lets postgres use the indexes
34
- oldest_execution_time_by_queue = run_silently do
35
- ::GoodJob::Execution
36
- .where(performed_at: nil, finished_at: nil)
37
- .group(:queue_name)
38
- .pluck(:queue_name, Arel.sql("min(coalesce(scheduled_at, created_at))"))
39
- .to_h
40
- end
41
- self.queues |= oldest_execution_time_by_queue.keys
42
-
43
- if track_busy_jobs?
44
- busy_count_by_queue = run_silently do
45
- ::GoodJob::Execution.running.group(:queue_name).count
46
- end
47
- self.queues |= busy_count_by_queue.keys
48
- end
49
-
50
- queues.each do |queue|
51
- run_at = oldest_execution_time_by_queue[queue]
52
- # DateTime.parse assumes a UTC string
53
- run_at = DateTime.parse(run_at) if run_at.is_a?(String)
54
- latency_ms = run_at ? ((time - run_at) * 1000).ceil : 0
55
- latency_ms = 0 if latency_ms < 0
56
-
57
- metrics.push Metric.new(:qt, latency_ms, time, queue)
58
-
59
- if track_busy_jobs?
60
- busy_count = busy_count_by_queue[queue] || 0
61
- metrics.push Metric.new(:busy, busy_count, Time.now, queue)
62
- end
63
- end
64
-
65
- log_collection(metrics)
66
- metrics
67
- end
68
- end
69
- end
70
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Judoscale
4
- module GoodJob
5
- VERSION = "1.7.0"
6
- end
7
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # require "good_job" fails unless we require these first
4
- require "rails"
5
- require "active_support/core_ext/numeric/time"
6
- require "active_job/railtie"
7
- require "good_job"
8
- require "judoscale-ruby"
9
- require "judoscale/config"
10
- require "judoscale/good_job/version"
11
- require "judoscale/good_job/metrics_collector"
12
-
13
- Judoscale.add_adapter :"judoscale-good_job",
14
- {
15
- adapter_version: Judoscale::GoodJob::VERSION,
16
- framework_version: ::GoodJob::VERSION
17
- },
18
- metrics_collector: Judoscale::GoodJob::MetricsCollector,
19
- expose_config: Judoscale::Config::JobAdapterConfig.new(:good_job)
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "judoscale/good_job"
@@ -1,30 +0,0 @@
1
- lib = File.expand_path("../lib", __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "judoscale/good_job/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "rails-autoscale-good_job"
7
- spec.version = Judoscale::GoodJob::VERSION
8
- spec.authors = ["Adam McCrea", "Carlos Antonio da Silva", "Jon Sullivan"]
9
- spec.email = ["hello@judoscale.com"]
10
-
11
- spec.summary = "Autoscaling for Good Job 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::GoodJob::VERSION
29
- spec.add_dependency "good_job", ">= 3.0"
30
- end