rails-autoscale-good_job 1.7.0 → 1.7.1

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: 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