bmc-daemon-lib 0.7.4 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|