rocketjob_mission_control 4.1.0 → 4.2.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: e285d14af9fde45c1fec22bc89a89f96b9eb6e59dbb1cbf5baeac2946b9b4a63
4
- data.tar.gz: fdff6c5fa69deec469be289f340fb4d82f910d8a1a9c819f703edb984e9fb773
3
+ metadata.gz: 80f6b3973c176cdfe7a2f0d0f20b51fa066fc0013ad86e1f01b400e45b75466f
4
+ data.tar.gz: 7d781ed535a84e4783ad6bc8efb6c4dbc53e76d8baf9092498665d20ce675788
5
5
  SHA512:
6
- metadata.gz: 2b24c8dfebb108b5d91dfe848f80f6b62feda9ff6bfd48d5e6f85a90cffb9d865dd10c071f646e34c25ca1e4962ffc8ea62e05d21c3c1bde441f4bb48fb1b3a2
7
- data.tar.gz: 06da811e1d6e9da338b948c463754dcced2512aac7177eea184b0a4f328872a9ceec707ccfc37d0f5f83353ab0fab6c469dc950b6ea4469edadaf7dab5098cee
6
+ metadata.gz: 5f3c5353ad000737226601f20e7fe2b287a3b942f97a1fce84cd40e6de70e0abbaca1f996557ee8933e2f450e4a5368d1b4ba4f6b3d9379b9565ef3437776b94
7
+ data.tar.gz: da41863c1b1e8668b2176cdca70331e519d194fc157638eff61cac5037c6e6f3d7ef07609204e88f1008d4e324ca654202200bf4f7843ff82a1757e07e340a4d
@@ -30,15 +30,17 @@ module RocketJobMissionControl
30
30
  QUEUED_COLUMNS = [
31
31
  {display: 'Class', value: :class_with_link, field: '_type'},
32
32
  {display: 'Description', value: :description, field: 'description'},
33
+ {display: 'Record Count', value: :record_count, field: 'record_count'},
33
34
  {display: 'Priority', value: :priority, field: 'priority'},
34
35
  {display: 'Queued For', value: :duration, field: 'duration', orderable: false},
35
36
  {display: 'Actions', value: :action_buttons, orderable: false}
36
37
  ]
37
- QUEUED_FIELDS = (COMMON_FIELDS + [:run_at, :priority]).freeze
38
+ QUEUED_FIELDS = (COMMON_FIELDS + [:record_count, :run_at, :priority]).freeze
38
39
 
39
40
  RUNNING_COLUMNS = [
40
41
  {display: 'Class', value: :class_with_link, field: '_type'},
41
42
  {display: 'Description', value: :description, field: 'description'},
43
+ {display: 'Record Count', value: :record_count, field: 'record_count'},
42
44
  {display: 'Progress', value: :progress, field: 'percent_complete', orderable: false},
43
45
  {display: 'Workers', value: :worker_count, field: 'worker_count', orderable: false},
44
46
  {display: 'Priority', value: :priority, field: 'priority'},
@@ -118,6 +120,10 @@ module RocketJobMissionControl
118
120
  h(job.worker_count)
119
121
  end
120
122
 
123
+ def record_count(job)
124
+ job.attributes.key?('record_count') ? h(job.record_count) : 0
125
+ end
126
+
121
127
  def started(job)
122
128
  "#{RocketJob.seconds_as_duration(Time.now - (job.started_at || Time.now))} ago" if job.started_at
123
129
  end
@@ -1,3 +1,3 @@
1
1
  module RocketJobMissionControl
2
- VERSION = '4.1.0'.freeze
2
+ VERSION = '4.2.0'.freeze
3
3
  end
@@ -23,6 +23,7 @@ module RocketJobMissionControl
23
23
  let(:server) do
24
24
  server = RocketJob::Server.new
25
25
  server.started
26
+ server.build_heartbeat(updated_at: 1.hour.ago, workers: 0)
26
27
  server
27
28
  end
28
29
 
@@ -50,6 +51,7 @@ module RocketJobMissionControl
50
51
  let(:server) do
51
52
  server = RocketJob::Server.new
52
53
  server.started
54
+ server.build_heartbeat(updated_at: 1.hour.ago, workers: 0)
53
55
  server
54
56
  end
55
57
 
@@ -3,6 +3,7 @@ require_relative '../../test_helper'
3
3
  class QueryTest < Minitest::Test
4
4
 
5
5
  class NoopJob < RocketJob::Job
6
+ field :record_count, type: Integer, default: 0
6
7
  def perform(record)
7
8
  # noop
8
9
  end
@@ -10,7 +11,7 @@ class QueryTest < Minitest::Test
10
11
 
11
12
  describe RocketJobMissionControl::Query do
12
13
  before do
13
- @jobs = (1..10).collect { |i| NoopJob.create(description: "Job #{i}") }
14
+ @jobs = (1..10).collect { |i| NoopJob.create(description: "Job #{i}", record_count: i) }
14
15
  end
15
16
 
16
17
  after do
@@ -98,6 +99,27 @@ class QueryTest < Minitest::Test
98
99
  assert_equal 3, count
99
100
  end
100
101
 
102
+ it 'sorts ascending by record_count' do
103
+ count = 0
104
+ previous = nil
105
+ RocketJobMissionControl::Query.new(NoopJob.all, record_count: 1).query.each do |job|
106
+ assert(previous < job.record_count, "Wrong sort order. #{previous} < #{job.record_count}") if previous
107
+ previous = job.record_count
108
+ count += 1
109
+ end
110
+ assert_equal @jobs.count, count
111
+ end
112
+
113
+ it 'sorts descending by record_count' do
114
+ count = 0
115
+ previous = nil
116
+ RocketJobMissionControl::Query.new(NoopJob.all, record_count: -1).query.each do |job|
117
+ assert(previous > job.record_count, "Wrong sort order. #{previous} > #{job.record_count}") if previous
118
+ previous = job.record_count
119
+ count += 1
120
+ end
121
+ assert_equal @jobs.count, count
122
+ end
101
123
  end
102
124
 
103
125
  describe '#count' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketjob_mission_control
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Cloutier
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2019-02-08 00:00:00.000000000 Z
14
+ date: 2019-04-03 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails