service_skeleton 0.0.0.30.g32b8169 → 0.0.0.34.g4f6fdb0
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/README.md +2 -0
- data/lib/service_skeleton/background_worker.rb +7 -2
- data/lib/service_skeleton/config.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e45890d70da0bc9118d5b96a8d697197cfd05fb6463ff3e84f048ceb4246b55
|
4
|
+
data.tar.gz: bb5bafb7ce4cd3e68143fbb179fd630cec02e9c2b1587afa7a601513efb826a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68f83da9df7a513d4664c94c01f6c48102012f6b8de6cf89641f48f617441e23d9ffdd408a879f9ca17a39e2debeed55750265b6ee03a16210e66a9d730adb5f
|
7
|
+
data.tar.gz: 64ddeaacdb65c61af8c745a4b2acb30857c3481641530e1968d29cf6aea0b29a341ff16d00259d05b8529793012da3b0eda9abd2c82e9b5e3f1a45cfe51f589f
|
data/README.md
CHANGED
@@ -75,6 +75,8 @@ Whatever it is, `ServiceSkeleton` doesn't discriminate. All you have to do is
|
|
75
75
|
write it in your subclass' `#run` method, and `ServiceSkeleton` will take care
|
76
76
|
of the rest.
|
77
77
|
|
78
|
+
If your `#run` method exits, the service will terminate.
|
79
|
+
|
78
80
|
|
79
81
|
### STAHP!
|
80
82
|
|
@@ -48,6 +48,7 @@ class ServiceSkeleton
|
|
48
48
|
logger.debug("BackgroundWorker(#{self.class})#start!") { "Background worker thread #{Thread.current.object_id} terminating" }
|
49
49
|
end
|
50
50
|
end
|
51
|
+
logger.debug("BackgroundWorker(#{self.class})#start!") { "Background worker thread #{Thread.current.object_id} is now done" }
|
51
52
|
end
|
52
53
|
|
53
54
|
@bg_worker_op_cv.wait(@bg_worker_op_mutex) until @bg_worker_thread
|
@@ -61,12 +62,15 @@ class ServiceSkeleton
|
|
61
62
|
logger.debug("BackgroundWorker(#{self.class})#stop!") { "Terminating worker thread #{@bg_worker_thread.object_id} as requested" }
|
62
63
|
|
63
64
|
if force == :force
|
65
|
+
logger.debug(logloc) { "Forcing termination" }
|
64
66
|
@bg_worker_thread.raise(TerminateBackgroundThread)
|
65
67
|
else
|
68
|
+
logger.debug(logloc) { "Gracefully terminating worker thread" }
|
66
69
|
shutdown
|
67
70
|
end
|
68
71
|
|
69
72
|
begin
|
73
|
+
logger.debug(logloc) { "Waiting for worker thread #{@bg_worker_thread.object_id} to finish itself off" }
|
70
74
|
@bg_worker_thread.join unless @bg_worker_thread == Thread.current
|
71
75
|
rescue TerminateBackgroundThread
|
72
76
|
nil
|
@@ -74,7 +78,7 @@ class ServiceSkeleton
|
|
74
78
|
|
75
79
|
@bg_worker_thread = nil
|
76
80
|
|
77
|
-
logger.debug("BackgroundWorker(#{self.class})#stop!") { "Worker thread terminated" }
|
81
|
+
logger.debug("BackgroundWorker(#{self.class})#stop!") { "Worker thread #{@bg_worker_thread.object_id} terminated" }
|
78
82
|
end
|
79
83
|
end
|
80
84
|
|
@@ -83,7 +87,8 @@ class ServiceSkeleton
|
|
83
87
|
attr_reader :logger
|
84
88
|
|
85
89
|
def shutdown
|
86
|
-
|
90
|
+
logger.debug("BackgroundWorker(#{self.class})#stop!") { "Using default shutdown method" }
|
91
|
+
@bg_worker_thread.raise(TerminateBackgroundThread) if @bg_worker_thread
|
87
92
|
end
|
88
93
|
end
|
89
94
|
end
|
@@ -75,7 +75,7 @@ class ServiceSkeleton
|
|
75
75
|
th_n = thread_id_map[Thread.current.object_id] || (thread_id_map[Thread.current.object_id] = thread_id_map.length)
|
76
76
|
|
77
77
|
ts = log_enable_timestamps ? "#{t.utc.strftime("%FT%T.%NZ")} " : ""
|
78
|
-
"#{ts}##{th_n} #{s[0]} [#{p}] #{m}\n"
|
78
|
+
"#{ts}#{$$}##{th_n} #{s[0]} [#{p}] #{m}\n"
|
79
79
|
end
|
80
80
|
|
81
81
|
@logger.filters = []
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: service_skeleton
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.0.
|
4
|
+
version: 0.0.0.34.g4f6fdb0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Palmer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: frankenstein
|