tiny_work_service 2.0.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/tiny_work_service.rb +17 -8
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7c5571b2bf724aef7555d8c11de715b7f2d3a8c615e319b9464a0a13f10b33d
4
- data.tar.gz: e8b2ff42e033f913bfd46e9d0120cba2fdf7c067782c98e0c6e2df96b22e9bd9
3
+ metadata.gz: 3b785423b4fed5c70b3d1a0edeec40270ecf8ec3e9c2c5959bc147cadd152fe8
4
+ data.tar.gz: 8b94f8906d00b5d1eda6989bdb20215be2db7b2122f1b2fee184cad89d506cbe
5
5
  SHA512:
6
- metadata.gz: bb3937d747d331b33ab3cbefd16c6d98550274cc0bb6068b1fb5155e8b7b7e0c09d99c50dd2dd504d065930afc484b3e3800694d0fb93f1807dde0055c10a3b6
7
- data.tar.gz: 231760d6718b704206986b94e8123667af07726946b3bc68d4fc32766dff6f38b34a4b258ffd09bfad5b0ef436e50a49decd68591669e3864787d09f7d46ef95
6
+ metadata.gz: 1003c35da546314d8ca952cc96dfe3dff7b6cd63f3c5fbcde8be9eb828685024d41f946f50df1482fe54bf04f1dc0d088c0e165940f660e024b0916b3e0e6896
7
+ data.tar.gz: 95cb6711d1ebe2914cd638024c7566e6dfd578e7b8e4916d2b320f616ec7de39eb048a79ade2b3b1b12361ac231b986d9f0e7872b5fe4ae687ba4e51bb6c453f
@@ -10,11 +10,12 @@ class TinyWorkService
10
10
  :jobs_per_minute,
11
11
  :jobs_per_hour
12
12
 
13
- def initialize(port, label)
13
+ def initialize(port, label, refresh_interval_in_seconds)
14
14
  @service = TinyTCPService.new(port)
15
15
  @service.msg_handler = self
16
16
  @jobs = Queue.new
17
17
  @label = label
18
+ @label_and_port = "#{@label}:#{port}"
18
19
 
19
20
  @jobs_enqueued = 0
20
21
  @jobs_dequeued = 0
@@ -23,21 +24,27 @@ class TinyWorkService
23
24
 
24
25
  @jobs_per_minute = 0
25
26
  @jobs_per_hour = 0
27
+ @errors_total = 0
26
28
 
27
29
  # status printing thread
28
30
  Thread.new do
31
+ start_time = Time.now
29
32
  print "\e[?25l" # hide cursor
30
33
  loop do
31
34
  break unless @service.running?
35
+ sec_runtime = Time.now - start_time
36
+ human_runtime = "%02d:%02d:%02d" % [sec_runtime / 3600, sec_runtime / 60 % 60, sec_runtime % 60]
32
37
 
33
38
  print "\e[1;1H"
34
- puts "#{DateTime.now.iso8601}\e[K"
35
- puts "#{@label}:#{port}\e[K"
36
- puts "workers :#{@service.num_clients.to_s.rjust(10)}\e[K"
37
- puts "queue :#{@jobs.length.to_s.rjust(10)}\e[K"
38
- puts "jobs/m :#{@jobs_per_minute.to_s.rjust(10)}\e[K"
39
- print "jobs/h :#{@jobs_per_hour.to_s.rjust(10)}\e[K"
40
- sleep 0.5
39
+ puts "label/port: #{@label_and_port.rjust(28)}\e[K"
40
+ puts "time : #{DateTime.now.iso8601.rjust(28)}\e[K"
41
+ puts "runtime : #{human_runtime.rjust(28)}\e[K"
42
+ puts "workers : #{@service.num_clients.to_s.rjust(28)}\e[K"
43
+ puts "queue : #{@jobs.length.to_s.rjust(28)}\e[K"
44
+ puts "jobs/m : #{@jobs_per_minute.to_s.rjust(28)}\e[K"
45
+ puts "jobs/h : #{@jobs_per_hour.to_s.rjust(28)}\e[K"
46
+ print "errors : #{@errors_total.to_s.rjust(28)}\e[K"
47
+ sleep refresh_interval_in_seconds
41
48
  end
42
49
  print "\e[?25h" # show cursor
43
50
  end
@@ -85,6 +92,8 @@ class TinyWorkService
85
92
  'ok' # ok, job received
86
93
  when m[0] == '-' # take a job from the queue
87
94
  shift || ''
95
+ when m[0] == '!' # register an error
96
+ @errors_total += 1
88
97
  else
89
98
  raise TinyTCPService::BadClient.new("Client sent invalid message: `#{m[..50]}'")
90
99
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tiny_work_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Lunt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-12 00:00:00.000000000 Z
11
+ date: 2024-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tiny_tcp_service