toiler 0.6.0 → 0.6.1
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/lib/toiler/actor/fetcher.rb +4 -2
- data/lib/toiler/actor/processor.rb +6 -5
- data/lib/toiler/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0be5aeacdc4416fc5d665387f5e5e8858c81b99f00cf63e58c71753f706f1d5d
|
4
|
+
data.tar.gz: 4a2d016c5b7a44cecce56076c02e058cb37952620be0d5a55b59fba8291f2316
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52222e17b30a37eb7a136a9114d44b263be27a16e085cbd35f0cff7a56618e206fc92da937fa20dce37cd23e5447f7c3a2b997197ce5b9c64acc4a4baecf48c0
|
7
|
+
data.tar.gz: 30d5b088632efa45bb91f4c885efdbe71a3f828b21230fa0cce03e29295fd0941569f9ec54f5af37ffeb2eebaae08a42b7d5a10e797e86b8129ec920c74cc4e7
|
data/lib/toiler/actor/fetcher.rb
CHANGED
@@ -34,7 +34,8 @@ module Toiler
|
|
34
34
|
@executing = true
|
35
35
|
method, *args = msg
|
36
36
|
send(method, *args)
|
37
|
-
rescue StandardError => e
|
37
|
+
rescue StandardError, SystemStackError => e
|
38
|
+
# rescue SystemStackError, if we misbehave and cause a stack level too deep exception, we should be able to recover
|
38
39
|
error "Fetcher #{queue.name} raised exception #{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"
|
39
40
|
ensure
|
40
41
|
@executing = false
|
@@ -93,7 +94,8 @@ module Toiler
|
|
93
94
|
tell :poll_messages
|
94
95
|
end
|
95
96
|
|
96
|
-
|
97
|
+
# defer method execution to avoid recursion
|
98
|
+
tell :poll_messages if should_poll?
|
97
99
|
end
|
98
100
|
|
99
101
|
def should_poll?
|
@@ -13,7 +13,7 @@ module Toiler
|
|
13
13
|
def initialize(queue)
|
14
14
|
@queue = queue
|
15
15
|
@worker_class = Toiler.worker_class_registry[queue]
|
16
|
-
@executing =
|
16
|
+
@executing = false
|
17
17
|
@thread = nil
|
18
18
|
init_options
|
19
19
|
end
|
@@ -29,12 +29,13 @@ module Toiler
|
|
29
29
|
def on_message(msg)
|
30
30
|
method, *args = msg
|
31
31
|
send(method, *args)
|
32
|
-
rescue StandardError => e
|
32
|
+
rescue StandardError, SystemStackError => e
|
33
|
+
# rescue SystemStackError, if clients misbehave and cause a stack level too deep exception, we should be able to recover
|
33
34
|
error "Processor #{queue} failed processing, reason: #{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"
|
34
35
|
end
|
35
36
|
|
36
37
|
def executing?
|
37
|
-
executing
|
38
|
+
@executing
|
38
39
|
end
|
39
40
|
|
40
41
|
private
|
@@ -70,7 +71,7 @@ module Toiler
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def process_init
|
73
|
-
@executing
|
74
|
+
@executing = true
|
74
75
|
@thread = Thread.current
|
75
76
|
debug "Processor #{queue} begins processing..."
|
76
77
|
end
|
@@ -80,7 +81,7 @@ module Toiler
|
|
80
81
|
timer.shutdown if timer
|
81
82
|
::ActiveRecord::Base.clear_active_connections! if defined? ActiveRecord
|
82
83
|
processor_finished
|
83
|
-
@executing
|
84
|
+
@executing = false
|
84
85
|
@thread = nil
|
85
86
|
debug "Processor #{queue} finished cleanup after perform..."
|
86
87
|
end
|
data/lib/toiler/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Schepens
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -125,7 +125,7 @@ homepage: https://github.com/sschepens/toiler
|
|
125
125
|
licenses:
|
126
126
|
- LGPLv3
|
127
127
|
metadata: {}
|
128
|
-
post_install_message:
|
128
|
+
post_install_message:
|
129
129
|
rdoc_options: []
|
130
130
|
require_paths:
|
131
131
|
- lib
|
@@ -140,8 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
|
-
rubygems_version: 3.0.
|
144
|
-
signing_key:
|
143
|
+
rubygems_version: 3.0.9
|
144
|
+
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: Toiler is a super efficient AWS SQS thread based message processor
|
147
147
|
test_files:
|