bmc-daemon-lib 0.7.4 → 0.8.0
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 +4 -4
- data/Gemfile.lock +4 -4
- data/bmc-daemon-lib.gemspec +1 -3
- data/lib/bmc-daemon-lib.rb +4 -1
- data/lib/bmc-daemon-lib/{worker_base.rb → worker.rb} +34 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7357ca31777d1e1c08aba18cca42f68f41094dbf
|
4
|
+
data.tar.gz: c39322bb7e140fa19a06697aa7ca5c16945721aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9b89de735c85cae26e6d60f51be0d89044fb382cd06ccf9bac18a67126c9f2447490a4ae13c1368aab7656fd835ba39400a9a5b3c998f1f50d73b4becd97e52
|
7
|
+
data.tar.gz: 054ebf6c828545e658cbe275054b8e5eb1722be24a3ede634e4f7d8fb121daa33697038a53522f7081c893710347c0a9e7711ce2c54e0faadda5e5dbd9c87cfa
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bmc-daemon-lib (0.
|
4
|
+
bmc-daemon-lib (0.8.0)
|
5
5
|
chamber (~> 2.9.1)
|
6
6
|
|
7
7
|
GEM
|
@@ -11,8 +11,8 @@ GEM
|
|
11
11
|
chamber (2.9.1)
|
12
12
|
hashie (~> 3.3)
|
13
13
|
thor (~> 0.19.1)
|
14
|
-
diff-lcs (1.
|
15
|
-
hashie (3.
|
14
|
+
diff-lcs (1.3)
|
15
|
+
hashie (3.5.1)
|
16
16
|
parser (2.3.3.1)
|
17
17
|
ast (~> 2.2)
|
18
18
|
powerpack (0.1.1)
|
@@ -31,7 +31,7 @@ GEM
|
|
31
31
|
diff-lcs (>= 1.2.0, < 2.0)
|
32
32
|
rspec-support (~> 3.5.0)
|
33
33
|
rspec-support (3.5.0)
|
34
|
-
rubocop (0.47.
|
34
|
+
rubocop (0.47.1)
|
35
35
|
parser (>= 2.3.3.1, < 3.0)
|
36
36
|
powerpack (~> 0.1)
|
37
37
|
rainbow (>= 1.99.1, < 3.0)
|
data/bmc-daemon-lib.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
Gem::Specification.new do |spec|
|
3
3
|
# Project version
|
4
|
-
spec.version = "0.
|
4
|
+
spec.version = "0.8.0"
|
5
5
|
|
6
6
|
# Project description
|
7
7
|
spec.name = "bmc-daemon-lib"
|
@@ -26,8 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "rubocop"
|
27
27
|
#spec.add_development_dependency "pry"
|
28
28
|
|
29
|
-
|
30
|
-
|
31
29
|
# Runtime dependencies
|
32
30
|
spec.add_runtime_dependency "chamber" , "~> 2.9.1"
|
33
31
|
end
|
data/lib/bmc-daemon-lib.rb
CHANGED
@@ -7,9 +7,12 @@ require "time"
|
|
7
7
|
|
8
8
|
# Project's libs
|
9
9
|
require_relative "bmc-daemon-lib/conf"
|
10
|
+
|
10
11
|
require_relative "bmc-daemon-lib/logger"
|
11
12
|
require_relative "bmc-daemon-lib/logger_helper"
|
12
13
|
require_relative "bmc-daemon-lib/logger_pool"
|
13
|
-
|
14
|
+
|
15
|
+
require_relative "bmc-daemon-lib/worker"
|
16
|
+
|
14
17
|
require_relative "bmc-daemon-lib/mq_endpoint"
|
15
18
|
require_relative "bmc-daemon-lib/mq_consumer"
|
@@ -1,7 +1,16 @@
|
|
1
1
|
module BmcDaemonLib
|
2
|
-
class
|
2
|
+
class Worker
|
3
3
|
include LoggerHelper
|
4
4
|
|
5
|
+
# Statuses
|
6
|
+
STATUS_STARTING = "starting"
|
7
|
+
STATUS_READY = "ready"
|
8
|
+
STATUS_WORKING = "working"
|
9
|
+
STATUS_SLEEPING = "sleeping"
|
10
|
+
STATUS_FINISHED = "finished"
|
11
|
+
STATUS_CRASHED = "crashed"
|
12
|
+
STATUS_TIMEOUT = "timeout"
|
13
|
+
|
5
14
|
# Class options
|
6
15
|
attr_reader :pool
|
7
16
|
attr_reader :wid
|
@@ -18,7 +27,7 @@ module BmcDaemonLib
|
|
18
27
|
Thread.current.thread_variable_set :wid, (@wid = wid)
|
19
28
|
Thread.current.thread_variable_set :pool, (@pool = pool)
|
20
29
|
Thread.current.thread_variable_set :started_at, Time.now
|
21
|
-
worker_status
|
30
|
+
worker_status STATUS_STARTING
|
22
31
|
|
23
32
|
# Ask worker to init itself, and return if there are errors
|
24
33
|
if worker_init_result = worker_init
|
@@ -41,15 +50,35 @@ module BmcDaemonLib
|
|
41
50
|
def worker_config
|
42
51
|
end
|
43
52
|
|
53
|
+
def worker_sleep seconds
|
54
|
+
return if seconds.nil? || seconds.to_f == 0.0
|
55
|
+
worker_status STATUS_SLEEPING
|
56
|
+
log_info "worker_sleep: #{seconds}", @config
|
57
|
+
sleep seconds
|
58
|
+
end
|
59
|
+
|
60
|
+
def working_on_job(job, working_on_it = false)
|
61
|
+
if working_on_it
|
62
|
+
job.wid = Thread.current.thread_variable_get :wid
|
63
|
+
Thread.current.thread_variable_set :jid, job.id
|
64
|
+
else
|
65
|
+
job.wid = nil
|
66
|
+
Thread.current.thread_variable_set :jid, nil
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
44
70
|
def start_loop
|
45
71
|
log_info "start_loop starting", @config
|
46
72
|
loop do
|
47
73
|
begin
|
74
|
+
# Announce we're waiting for work
|
75
|
+
worker_status STATUS_READY
|
76
|
+
|
48
77
|
# Do the hard work
|
49
78
|
worker_process
|
50
79
|
|
51
|
-
#
|
52
|
-
|
80
|
+
# Should we sleep ?
|
81
|
+
worker_sleep @config[:timer]
|
53
82
|
|
54
83
|
rescue StandardError => e
|
55
84
|
log_error "WORKER EXCEPTION: #{e.inspect}"
|
@@ -58,7 +87,7 @@ module BmcDaemonLib
|
|
58
87
|
end
|
59
88
|
end
|
60
89
|
|
61
|
-
def worker_status status
|
90
|
+
def worker_status status
|
62
91
|
# Update thread variables
|
63
92
|
Thread.current.thread_variable_set :status, status
|
64
93
|
Thread.current.thread_variable_set :updated_at, Time.now
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bmc-daemon-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruno MEDICI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01
|
11
|
+
date: 2017-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -101,7 +101,7 @@ files:
|
|
101
101
|
- lib/bmc-daemon-lib/logger_pool.rb
|
102
102
|
- lib/bmc-daemon-lib/mq_consumer.rb
|
103
103
|
- lib/bmc-daemon-lib/mq_endpoint.rb
|
104
|
-
- lib/bmc-daemon-lib/
|
104
|
+
- lib/bmc-daemon-lib/worker.rb
|
105
105
|
homepage: http://github.com/bmedici/bmc-daemon-lib
|
106
106
|
licenses:
|
107
107
|
- MIT
|