cloudtasker 0.12.rc10 → 0.12.2
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/.github/workflows/test.yml +1 -5
- data/CHANGELOG.md +44 -3
- data/README.md +56 -6
- data/app/controllers/cloudtasker/worker_controller.rb +4 -1
- data/docs/BATCH_JOBS.md +2 -2
- data/docs/CRON_JOBS.md +39 -0
- data/gemfiles/google_cloud_tasks_1.0.gemfile.lock +135 -125
- data/gemfiles/google_cloud_tasks_1.1.gemfile.lock +135 -125
- data/gemfiles/google_cloud_tasks_1.2.gemfile.lock +135 -125
- data/gemfiles/google_cloud_tasks_1.3.gemfile.lock +135 -125
- data/gemfiles/rails_5.2.gemfile.lock +78 -68
- data/gemfiles/rails_6.0.gemfile.lock +79 -69
- data/lib/cloudtasker/config.rb +26 -2
- data/lib/cloudtasker/local_server.rb +1 -1
- data/lib/cloudtasker/version.rb +1 -1
- data/lib/cloudtasker/worker.rb +1 -1
- data/lib/cloudtasker/worker_handler.rb +2 -0
- data/lib/cloudtasker.rb +1 -0
- metadata +7 -8
- data/app/controllers/cloudtasker/application_controller.rb +0 -8
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
cloudtasker (0.12.
|
4
|
+
cloudtasker (0.12.2)
|
5
5
|
activesupport
|
6
6
|
connection_pool
|
7
7
|
fugit
|
@@ -54,60 +54,70 @@ GEM
|
|
54
54
|
i18n (>= 0.7, < 2)
|
55
55
|
minitest (~> 5.1)
|
56
56
|
tzinfo (~> 1.1)
|
57
|
-
addressable (2.
|
57
|
+
addressable (2.8.0)
|
58
58
|
public_suffix (>= 2.0.2, < 5.0)
|
59
|
-
appraisal (2.4.
|
59
|
+
appraisal (2.4.1)
|
60
60
|
bundler
|
61
61
|
rake
|
62
62
|
thor (>= 0.14.0)
|
63
63
|
arel (9.0.0)
|
64
64
|
ast (2.4.2)
|
65
|
-
async (1.
|
65
|
+
async (1.30.1)
|
66
66
|
console (~> 1.10)
|
67
67
|
nio4r (~> 2.3)
|
68
68
|
timers (~> 4.1)
|
69
|
-
async-http (0.
|
70
|
-
async (
|
71
|
-
async-io (
|
72
|
-
async-pool (
|
73
|
-
protocol-http (~> 0.
|
74
|
-
protocol-http1 (~> 0.
|
69
|
+
async-http (0.56.5)
|
70
|
+
async (>= 1.25)
|
71
|
+
async-io (>= 1.28)
|
72
|
+
async-pool (>= 0.2)
|
73
|
+
protocol-http (~> 0.22.0)
|
74
|
+
protocol-http1 (~> 0.14.0)
|
75
75
|
protocol-http2 (~> 0.14.0)
|
76
|
-
async-http-faraday (0.
|
76
|
+
async-http-faraday (0.11.0)
|
77
77
|
async-http (~> 0.42)
|
78
78
|
faraday
|
79
|
-
async-io (1.
|
80
|
-
async
|
81
|
-
async-pool (0.3.
|
82
|
-
async (
|
79
|
+
async-io (1.32.2)
|
80
|
+
async
|
81
|
+
async-pool (0.3.9)
|
82
|
+
async (>= 1.25)
|
83
83
|
builder (3.2.4)
|
84
|
-
concurrent-ruby (1.1.
|
84
|
+
concurrent-ruby (1.1.9)
|
85
85
|
connection_pool (2.2.5)
|
86
|
-
console (1.
|
86
|
+
console (1.14.0)
|
87
87
|
fiber-local
|
88
88
|
crack (0.4.5)
|
89
89
|
rexml
|
90
90
|
crass (1.0.6)
|
91
|
-
diff-lcs (1.
|
91
|
+
diff-lcs (1.5.0)
|
92
92
|
erubi (1.10.0)
|
93
|
-
et-orbi (1.2.
|
93
|
+
et-orbi (1.2.6)
|
94
94
|
tzinfo
|
95
|
-
faraday (1.
|
95
|
+
faraday (1.8.0)
|
96
|
+
faraday-em_http (~> 1.0)
|
97
|
+
faraday-em_synchrony (~> 1.0)
|
96
98
|
faraday-excon (~> 1.1)
|
99
|
+
faraday-httpclient (~> 1.0.1)
|
97
100
|
faraday-net_http (~> 1.0)
|
98
101
|
faraday-net_http_persistent (~> 1.1)
|
102
|
+
faraday-patron (~> 1.0)
|
103
|
+
faraday-rack (~> 1.0)
|
99
104
|
multipart-post (>= 1.2, < 3)
|
100
105
|
ruby2_keywords (>= 0.0.4)
|
106
|
+
faraday-em_http (1.0.0)
|
107
|
+
faraday-em_synchrony (1.0.0)
|
101
108
|
faraday-excon (1.1.0)
|
102
109
|
faraday-http-cache (2.2.0)
|
103
110
|
faraday (>= 0.8)
|
111
|
+
faraday-httpclient (1.0.1)
|
104
112
|
faraday-net_http (1.0.1)
|
105
|
-
faraday-net_http_persistent (1.
|
113
|
+
faraday-net_http_persistent (1.2.0)
|
114
|
+
faraday-patron (1.0.0)
|
115
|
+
faraday-rack (1.0.0)
|
106
116
|
fiber-local (1.0.0)
|
107
|
-
fugit (1.
|
117
|
+
fugit (1.5.2)
|
108
118
|
et-orbi (~> 1.1, >= 1.1.8)
|
109
119
|
raabro (~> 1.4)
|
110
|
-
github_changelog_generator (1.16.
|
120
|
+
github_changelog_generator (1.16.4)
|
111
121
|
activesupport
|
112
122
|
async (>= 1.25.0)
|
113
123
|
async-http-faraday
|
@@ -116,47 +126,47 @@ GEM
|
|
116
126
|
octokit (~> 4.6)
|
117
127
|
rainbow (>= 2.2.1)
|
118
128
|
rake (>= 10.0)
|
119
|
-
|
120
|
-
|
121
|
-
activesupport (>= 4.2.0)
|
129
|
+
globalid (1.0.0)
|
130
|
+
activesupport (>= 5.0)
|
122
131
|
google-cloud-tasks (1.5.1)
|
123
132
|
google-gax (~> 1.8)
|
124
133
|
googleapis-common-protos (>= 1.3.9, < 2.0)
|
125
134
|
googleapis-common-protos-types (>= 1.0.4, < 2.0)
|
126
135
|
grpc-google-iam-v1 (~> 0.6.9)
|
127
|
-
google-gax (1.8.
|
136
|
+
google-gax (1.8.2)
|
128
137
|
google-protobuf (~> 3.9)
|
129
138
|
googleapis-common-protos (>= 1.3.9, < 2.0)
|
139
|
+
googleapis-common-protos-types (>= 1.0.4, < 2.0)
|
130
140
|
googleauth (~> 0.9)
|
131
141
|
grpc (~> 1.24)
|
132
142
|
rly (~> 0.2.3)
|
133
|
-
google-protobuf (3.
|
134
|
-
googleapis-common-protos (1.3.
|
143
|
+
google-protobuf (3.19.1)
|
144
|
+
googleapis-common-protos (1.3.12)
|
135
145
|
google-protobuf (~> 3.14)
|
136
|
-
googleapis-common-protos-types (
|
146
|
+
googleapis-common-protos-types (~> 1.2)
|
137
147
|
grpc (~> 1.27)
|
138
|
-
googleapis-common-protos-types (1.0
|
148
|
+
googleapis-common-protos-types (1.3.0)
|
139
149
|
google-protobuf (~> 3.14)
|
140
|
-
googleauth (0.
|
150
|
+
googleauth (0.17.1)
|
141
151
|
faraday (>= 0.17.3, < 2.0)
|
142
152
|
jwt (>= 1.4, < 3.0)
|
143
153
|
memoist (~> 0.16)
|
144
154
|
multi_json (~> 1.11)
|
145
155
|
os (>= 0.9, < 2.0)
|
146
|
-
signet (~> 0.
|
147
|
-
grpc (1.
|
148
|
-
google-protobuf (~> 3.
|
156
|
+
signet (~> 0.15)
|
157
|
+
grpc (1.42.0)
|
158
|
+
google-protobuf (~> 3.18)
|
149
159
|
googleapis-common-protos-types (~> 1.0)
|
150
160
|
grpc-google-iam-v1 (0.6.11)
|
151
161
|
google-protobuf (~> 3.14)
|
152
162
|
googleapis-common-protos (>= 1.3.11, < 2.0)
|
153
163
|
grpc (~> 1.27)
|
154
164
|
hashdiff (1.0.1)
|
155
|
-
i18n (1.8.
|
165
|
+
i18n (1.8.11)
|
156
166
|
concurrent-ruby (~> 1.0)
|
157
167
|
jaro_winkler (1.5.4)
|
158
|
-
jwt (2.
|
159
|
-
loofah (2.
|
168
|
+
jwt (2.3.0)
|
169
|
+
loofah (2.13.0)
|
160
170
|
crass (~> 1.0.2)
|
161
171
|
nokogiri (>= 1.5.9)
|
162
172
|
mail (2.7.1)
|
@@ -168,32 +178,32 @@ GEM
|
|
168
178
|
mimemagic (0.3.10)
|
169
179
|
nokogiri (~> 1)
|
170
180
|
rake
|
171
|
-
mini_mime (1.1.
|
172
|
-
mini_portile2 (2.
|
173
|
-
minitest (5.
|
181
|
+
mini_mime (1.1.2)
|
182
|
+
mini_portile2 (2.6.1)
|
183
|
+
minitest (5.15.0)
|
174
184
|
multi_json (1.15.0)
|
175
185
|
multipart-post (2.1.1)
|
176
|
-
nio4r (2.5.
|
177
|
-
nokogiri (1.
|
178
|
-
mini_portile2 (~> 2.
|
186
|
+
nio4r (2.5.8)
|
187
|
+
nokogiri (1.12.5)
|
188
|
+
mini_portile2 (~> 2.6.1)
|
179
189
|
racc (~> 1.4)
|
180
|
-
octokit (4.
|
190
|
+
octokit (4.21.0)
|
181
191
|
faraday (>= 0.9)
|
182
192
|
sawyer (~> 0.8.0, >= 0.5.3)
|
183
|
-
os (1.1.
|
184
|
-
parallel (1.
|
185
|
-
parser (3.0.
|
193
|
+
os (1.1.4)
|
194
|
+
parallel (1.21.0)
|
195
|
+
parser (3.0.3.2)
|
186
196
|
ast (~> 2.4.1)
|
187
197
|
protocol-hpack (1.4.2)
|
188
|
-
protocol-http (0.
|
189
|
-
protocol-http1 (0.
|
190
|
-
protocol-http (~> 0.
|
198
|
+
protocol-http (0.22.5)
|
199
|
+
protocol-http1 (0.14.2)
|
200
|
+
protocol-http (~> 0.22)
|
191
201
|
protocol-http2 (0.14.2)
|
192
202
|
protocol-hpack (~> 1.4)
|
193
203
|
protocol-http (~> 0.18)
|
194
204
|
public_suffix (4.0.6)
|
195
205
|
raabro (1.4.0)
|
196
|
-
racc (1.
|
206
|
+
racc (1.6.0)
|
197
207
|
rack (2.2.3)
|
198
208
|
rack-test (1.1.0)
|
199
209
|
rack (>= 1.0, < 3)
|
@@ -213,7 +223,7 @@ GEM
|
|
213
223
|
rails-dom-testing (2.0.3)
|
214
224
|
activesupport (>= 4.2.0)
|
215
225
|
nokogiri (>= 1.6)
|
216
|
-
rails-html-sanitizer (1.
|
226
|
+
rails-html-sanitizer (1.4.2)
|
217
227
|
loofah (~> 2.3)
|
218
228
|
railties (5.2.0)
|
219
229
|
actionpack (= 5.2.0)
|
@@ -222,8 +232,8 @@ GEM
|
|
222
232
|
rake (>= 0.8.7)
|
223
233
|
thor (>= 0.18.1, < 2.0)
|
224
234
|
rainbow (3.0.0)
|
225
|
-
rake (13.0.
|
226
|
-
redis (4.
|
235
|
+
rake (13.0.6)
|
236
|
+
redis (4.5.1)
|
227
237
|
retriable (3.1.2)
|
228
238
|
rexml (3.2.5)
|
229
239
|
rly (0.2.3)
|
@@ -240,7 +250,7 @@ GEM
|
|
240
250
|
rspec-mocks (3.10.2)
|
241
251
|
diff-lcs (>= 1.2.0, < 2.0)
|
242
252
|
rspec-support (~> 3.10.0)
|
243
|
-
rspec-rails (5.0.
|
253
|
+
rspec-rails (5.0.2)
|
244
254
|
actionpack (>= 5.2)
|
245
255
|
activesupport (>= 5.2)
|
246
256
|
railties (>= 5.2)
|
@@ -248,7 +258,7 @@ GEM
|
|
248
258
|
rspec-expectations (~> 3.10)
|
249
259
|
rspec-mocks (~> 3.10)
|
250
260
|
rspec-support (~> 3.10)
|
251
|
-
rspec-support (3.10.
|
261
|
+
rspec-support (3.10.3)
|
252
262
|
rubocop (0.76.0)
|
253
263
|
jaro_winkler (~> 1.5.1)
|
254
264
|
parallel (~> 1.10)
|
@@ -259,23 +269,23 @@ GEM
|
|
259
269
|
rubocop-rspec (1.37.0)
|
260
270
|
rubocop (>= 0.68.1)
|
261
271
|
ruby-progressbar (1.11.0)
|
262
|
-
ruby2_keywords (0.0.
|
272
|
+
ruby2_keywords (0.0.5)
|
263
273
|
sawyer (0.8.2)
|
264
274
|
addressable (>= 2.3.5)
|
265
275
|
faraday (> 0.8, < 2.0)
|
266
|
-
semantic_logger (4.
|
276
|
+
semantic_logger (4.9.0)
|
267
277
|
concurrent-ruby (~> 1.0)
|
268
|
-
signet (0.
|
269
|
-
addressable (~> 2.
|
278
|
+
signet (0.16.0)
|
279
|
+
addressable (~> 2.8)
|
270
280
|
faraday (>= 0.17.3, < 2.0)
|
271
281
|
jwt (>= 1.5, < 3.0)
|
272
282
|
multi_json (~> 1.10)
|
273
283
|
sprockets (4.0.2)
|
274
284
|
concurrent-ruby (~> 1.0)
|
275
285
|
rack (> 1, < 3)
|
276
|
-
sprockets-rails (3.
|
277
|
-
actionpack (>=
|
278
|
-
activesupport (>=
|
286
|
+
sprockets-rails (3.4.2)
|
287
|
+
actionpack (>= 5.2)
|
288
|
+
activesupport (>= 5.2)
|
279
289
|
sprockets (>= 3.0.0)
|
280
290
|
sqlite3 (1.4.2)
|
281
291
|
thor (1.1.0)
|
@@ -285,11 +295,11 @@ GEM
|
|
285
295
|
tzinfo (1.2.9)
|
286
296
|
thread_safe (~> 0.1)
|
287
297
|
unicode-display_width (1.6.1)
|
288
|
-
webmock (3.
|
289
|
-
addressable (>= 2.
|
298
|
+
webmock (3.14.0)
|
299
|
+
addressable (>= 2.8.0)
|
290
300
|
crack (>= 0.3.2)
|
291
301
|
hashdiff (>= 0.4.0, < 2.0.0)
|
292
|
-
websocket-driver (0.7.
|
302
|
+
websocket-driver (0.7.5)
|
293
303
|
websocket-extensions (>= 0.1.0)
|
294
304
|
websocket-extensions (0.1.5)
|
295
305
|
|
@@ -314,4 +324,4 @@ DEPENDENCIES
|
|
314
324
|
webmock
|
315
325
|
|
316
326
|
BUNDLED WITH
|
317
|
-
2.2.
|
327
|
+
2.2.26
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ..
|
3
3
|
specs:
|
4
|
-
cloudtasker (0.12.
|
4
|
+
cloudtasker (0.12.2)
|
5
5
|
activesupport
|
6
6
|
connection_pool
|
7
7
|
fugit
|
@@ -68,59 +68,69 @@ GEM
|
|
68
68
|
minitest (~> 5.1)
|
69
69
|
tzinfo (~> 1.1)
|
70
70
|
zeitwerk (~> 2.1, >= 2.1.8)
|
71
|
-
addressable (2.
|
71
|
+
addressable (2.8.0)
|
72
72
|
public_suffix (>= 2.0.2, < 5.0)
|
73
|
-
appraisal (2.4.
|
73
|
+
appraisal (2.4.1)
|
74
74
|
bundler
|
75
75
|
rake
|
76
76
|
thor (>= 0.14.0)
|
77
77
|
ast (2.4.2)
|
78
|
-
async (1.
|
78
|
+
async (1.30.1)
|
79
79
|
console (~> 1.10)
|
80
80
|
nio4r (~> 2.3)
|
81
81
|
timers (~> 4.1)
|
82
|
-
async-http (0.
|
83
|
-
async (
|
84
|
-
async-io (
|
85
|
-
async-pool (
|
86
|
-
protocol-http (~> 0.
|
87
|
-
protocol-http1 (~> 0.
|
82
|
+
async-http (0.56.5)
|
83
|
+
async (>= 1.25)
|
84
|
+
async-io (>= 1.28)
|
85
|
+
async-pool (>= 0.2)
|
86
|
+
protocol-http (~> 0.22.0)
|
87
|
+
protocol-http1 (~> 0.14.0)
|
88
88
|
protocol-http2 (~> 0.14.0)
|
89
|
-
async-http-faraday (0.
|
89
|
+
async-http-faraday (0.11.0)
|
90
90
|
async-http (~> 0.42)
|
91
91
|
faraday
|
92
|
-
async-io (1.
|
93
|
-
async
|
94
|
-
async-pool (0.3.
|
95
|
-
async (
|
92
|
+
async-io (1.32.2)
|
93
|
+
async
|
94
|
+
async-pool (0.3.9)
|
95
|
+
async (>= 1.25)
|
96
96
|
builder (3.2.4)
|
97
|
-
concurrent-ruby (1.1.
|
97
|
+
concurrent-ruby (1.1.9)
|
98
98
|
connection_pool (2.2.5)
|
99
|
-
console (1.
|
99
|
+
console (1.14.0)
|
100
100
|
fiber-local
|
101
101
|
crack (0.4.5)
|
102
102
|
rexml
|
103
103
|
crass (1.0.6)
|
104
|
-
diff-lcs (1.
|
104
|
+
diff-lcs (1.5.0)
|
105
105
|
erubi (1.10.0)
|
106
|
-
et-orbi (1.2.
|
106
|
+
et-orbi (1.2.6)
|
107
107
|
tzinfo
|
108
|
-
faraday (1.
|
108
|
+
faraday (1.8.0)
|
109
|
+
faraday-em_http (~> 1.0)
|
110
|
+
faraday-em_synchrony (~> 1.0)
|
109
111
|
faraday-excon (~> 1.1)
|
112
|
+
faraday-httpclient (~> 1.0.1)
|
110
113
|
faraday-net_http (~> 1.0)
|
111
114
|
faraday-net_http_persistent (~> 1.1)
|
115
|
+
faraday-patron (~> 1.0)
|
116
|
+
faraday-rack (~> 1.0)
|
112
117
|
multipart-post (>= 1.2, < 3)
|
113
118
|
ruby2_keywords (>= 0.0.4)
|
119
|
+
faraday-em_http (1.0.0)
|
120
|
+
faraday-em_synchrony (1.0.0)
|
114
121
|
faraday-excon (1.1.0)
|
115
122
|
faraday-http-cache (2.2.0)
|
116
123
|
faraday (>= 0.8)
|
124
|
+
faraday-httpclient (1.0.1)
|
117
125
|
faraday-net_http (1.0.1)
|
118
|
-
faraday-net_http_persistent (1.
|
126
|
+
faraday-net_http_persistent (1.2.0)
|
127
|
+
faraday-patron (1.0.0)
|
128
|
+
faraday-rack (1.0.0)
|
119
129
|
fiber-local (1.0.0)
|
120
|
-
fugit (1.
|
130
|
+
fugit (1.5.2)
|
121
131
|
et-orbi (~> 1.1, >= 1.1.8)
|
122
132
|
raabro (~> 1.4)
|
123
|
-
github_changelog_generator (1.16.
|
133
|
+
github_changelog_generator (1.16.4)
|
124
134
|
activesupport
|
125
135
|
async (>= 1.25.0)
|
126
136
|
async-http-faraday
|
@@ -129,47 +139,47 @@ GEM
|
|
129
139
|
octokit (~> 4.6)
|
130
140
|
rainbow (>= 2.2.1)
|
131
141
|
rake (>= 10.0)
|
132
|
-
|
133
|
-
|
134
|
-
activesupport (>= 4.2.0)
|
142
|
+
globalid (1.0.0)
|
143
|
+
activesupport (>= 5.0)
|
135
144
|
google-cloud-tasks (1.5.1)
|
136
145
|
google-gax (~> 1.8)
|
137
146
|
googleapis-common-protos (>= 1.3.9, < 2.0)
|
138
147
|
googleapis-common-protos-types (>= 1.0.4, < 2.0)
|
139
148
|
grpc-google-iam-v1 (~> 0.6.9)
|
140
|
-
google-gax (1.8.
|
149
|
+
google-gax (1.8.2)
|
141
150
|
google-protobuf (~> 3.9)
|
142
151
|
googleapis-common-protos (>= 1.3.9, < 2.0)
|
152
|
+
googleapis-common-protos-types (>= 1.0.4, < 2.0)
|
143
153
|
googleauth (~> 0.9)
|
144
154
|
grpc (~> 1.24)
|
145
155
|
rly (~> 0.2.3)
|
146
|
-
google-protobuf (3.
|
147
|
-
googleapis-common-protos (1.3.
|
156
|
+
google-protobuf (3.19.1)
|
157
|
+
googleapis-common-protos (1.3.12)
|
148
158
|
google-protobuf (~> 3.14)
|
149
|
-
googleapis-common-protos-types (
|
159
|
+
googleapis-common-protos-types (~> 1.2)
|
150
160
|
grpc (~> 1.27)
|
151
|
-
googleapis-common-protos-types (1.0
|
161
|
+
googleapis-common-protos-types (1.3.0)
|
152
162
|
google-protobuf (~> 3.14)
|
153
|
-
googleauth (0.
|
163
|
+
googleauth (0.17.1)
|
154
164
|
faraday (>= 0.17.3, < 2.0)
|
155
165
|
jwt (>= 1.4, < 3.0)
|
156
166
|
memoist (~> 0.16)
|
157
167
|
multi_json (~> 1.11)
|
158
168
|
os (>= 0.9, < 2.0)
|
159
|
-
signet (~> 0.
|
160
|
-
grpc (1.
|
161
|
-
google-protobuf (~> 3.
|
169
|
+
signet (~> 0.15)
|
170
|
+
grpc (1.42.0)
|
171
|
+
google-protobuf (~> 3.18)
|
162
172
|
googleapis-common-protos-types (~> 1.0)
|
163
173
|
grpc-google-iam-v1 (0.6.11)
|
164
174
|
google-protobuf (~> 3.14)
|
165
175
|
googleapis-common-protos (>= 1.3.11, < 2.0)
|
166
176
|
grpc (~> 1.27)
|
167
177
|
hashdiff (1.0.1)
|
168
|
-
i18n (1.8.
|
178
|
+
i18n (1.8.11)
|
169
179
|
concurrent-ruby (~> 1.0)
|
170
180
|
jaro_winkler (1.5.4)
|
171
|
-
jwt (2.
|
172
|
-
loofah (2.
|
181
|
+
jwt (2.3.0)
|
182
|
+
loofah (2.13.0)
|
173
183
|
crass (~> 1.0.2)
|
174
184
|
nokogiri (>= 1.5.9)
|
175
185
|
mail (2.7.1)
|
@@ -181,32 +191,32 @@ GEM
|
|
181
191
|
mimemagic (0.3.10)
|
182
192
|
nokogiri (~> 1)
|
183
193
|
rake
|
184
|
-
mini_mime (1.1.
|
185
|
-
mini_portile2 (2.
|
186
|
-
minitest (5.
|
194
|
+
mini_mime (1.1.2)
|
195
|
+
mini_portile2 (2.6.1)
|
196
|
+
minitest (5.15.0)
|
187
197
|
multi_json (1.15.0)
|
188
198
|
multipart-post (2.1.1)
|
189
|
-
nio4r (2.5.
|
190
|
-
nokogiri (1.
|
191
|
-
mini_portile2 (~> 2.
|
199
|
+
nio4r (2.5.8)
|
200
|
+
nokogiri (1.12.5)
|
201
|
+
mini_portile2 (~> 2.6.1)
|
192
202
|
racc (~> 1.4)
|
193
|
-
octokit (4.
|
203
|
+
octokit (4.21.0)
|
194
204
|
faraday (>= 0.9)
|
195
205
|
sawyer (~> 0.8.0, >= 0.5.3)
|
196
|
-
os (1.1.
|
197
|
-
parallel (1.
|
198
|
-
parser (3.0.
|
206
|
+
os (1.1.4)
|
207
|
+
parallel (1.21.0)
|
208
|
+
parser (3.0.3.2)
|
199
209
|
ast (~> 2.4.1)
|
200
210
|
protocol-hpack (1.4.2)
|
201
|
-
protocol-http (0.
|
202
|
-
protocol-http1 (0.
|
203
|
-
protocol-http (~> 0.
|
211
|
+
protocol-http (0.22.5)
|
212
|
+
protocol-http1 (0.14.2)
|
213
|
+
protocol-http (~> 0.22)
|
204
214
|
protocol-http2 (0.14.2)
|
205
215
|
protocol-hpack (~> 1.4)
|
206
216
|
protocol-http (~> 0.18)
|
207
217
|
public_suffix (4.0.6)
|
208
218
|
raabro (1.4.0)
|
209
|
-
racc (1.
|
219
|
+
racc (1.6.0)
|
210
220
|
rack (2.2.3)
|
211
221
|
rack-test (1.1.0)
|
212
222
|
rack (>= 1.0, < 3)
|
@@ -228,7 +238,7 @@ GEM
|
|
228
238
|
rails-dom-testing (2.0.3)
|
229
239
|
activesupport (>= 4.2.0)
|
230
240
|
nokogiri (>= 1.6)
|
231
|
-
rails-html-sanitizer (1.
|
241
|
+
rails-html-sanitizer (1.4.2)
|
232
242
|
loofah (~> 2.3)
|
233
243
|
railties (6.0.0)
|
234
244
|
actionpack (= 6.0.0)
|
@@ -237,8 +247,8 @@ GEM
|
|
237
247
|
rake (>= 0.8.7)
|
238
248
|
thor (>= 0.20.3, < 2.0)
|
239
249
|
rainbow (3.0.0)
|
240
|
-
rake (13.0.
|
241
|
-
redis (4.
|
250
|
+
rake (13.0.6)
|
251
|
+
redis (4.5.1)
|
242
252
|
retriable (3.1.2)
|
243
253
|
rexml (3.2.5)
|
244
254
|
rly (0.2.3)
|
@@ -255,7 +265,7 @@ GEM
|
|
255
265
|
rspec-mocks (3.10.2)
|
256
266
|
diff-lcs (>= 1.2.0, < 2.0)
|
257
267
|
rspec-support (~> 3.10.0)
|
258
|
-
rspec-rails (5.0.
|
268
|
+
rspec-rails (5.0.2)
|
259
269
|
actionpack (>= 5.2)
|
260
270
|
activesupport (>= 5.2)
|
261
271
|
railties (>= 5.2)
|
@@ -263,7 +273,7 @@ GEM
|
|
263
273
|
rspec-expectations (~> 3.10)
|
264
274
|
rspec-mocks (~> 3.10)
|
265
275
|
rspec-support (~> 3.10)
|
266
|
-
rspec-support (3.10.
|
276
|
+
rspec-support (3.10.3)
|
267
277
|
rubocop (0.76.0)
|
268
278
|
jaro_winkler (~> 1.5.1)
|
269
279
|
parallel (~> 1.10)
|
@@ -274,23 +284,23 @@ GEM
|
|
274
284
|
rubocop-rspec (1.37.0)
|
275
285
|
rubocop (>= 0.68.1)
|
276
286
|
ruby-progressbar (1.11.0)
|
277
|
-
ruby2_keywords (0.0.
|
287
|
+
ruby2_keywords (0.0.5)
|
278
288
|
sawyer (0.8.2)
|
279
289
|
addressable (>= 2.3.5)
|
280
290
|
faraday (> 0.8, < 2.0)
|
281
|
-
semantic_logger (4.
|
291
|
+
semantic_logger (4.9.0)
|
282
292
|
concurrent-ruby (~> 1.0)
|
283
|
-
signet (0.
|
284
|
-
addressable (~> 2.
|
293
|
+
signet (0.16.0)
|
294
|
+
addressable (~> 2.8)
|
285
295
|
faraday (>= 0.17.3, < 2.0)
|
286
296
|
jwt (>= 1.5, < 3.0)
|
287
297
|
multi_json (~> 1.10)
|
288
298
|
sprockets (4.0.2)
|
289
299
|
concurrent-ruby (~> 1.0)
|
290
300
|
rack (> 1, < 3)
|
291
|
-
sprockets-rails (3.
|
292
|
-
actionpack (>=
|
293
|
-
activesupport (>=
|
301
|
+
sprockets-rails (3.4.2)
|
302
|
+
actionpack (>= 5.2)
|
303
|
+
activesupport (>= 5.2)
|
294
304
|
sprockets (>= 3.0.0)
|
295
305
|
sqlite3 (1.4.2)
|
296
306
|
thor (1.1.0)
|
@@ -300,14 +310,14 @@ GEM
|
|
300
310
|
tzinfo (1.2.9)
|
301
311
|
thread_safe (~> 0.1)
|
302
312
|
unicode-display_width (1.6.1)
|
303
|
-
webmock (3.
|
304
|
-
addressable (>= 2.
|
313
|
+
webmock (3.14.0)
|
314
|
+
addressable (>= 2.8.0)
|
305
315
|
crack (>= 0.3.2)
|
306
316
|
hashdiff (>= 0.4.0, < 2.0.0)
|
307
|
-
websocket-driver (0.7.
|
317
|
+
websocket-driver (0.7.5)
|
308
318
|
websocket-extensions (>= 0.1.0)
|
309
319
|
websocket-extensions (0.1.5)
|
310
|
-
zeitwerk (2.
|
320
|
+
zeitwerk (2.5.3)
|
311
321
|
|
312
322
|
PLATFORMS
|
313
323
|
ruby
|
@@ -330,4 +340,4 @@ DEPENDENCIES
|
|
330
340
|
webmock
|
331
341
|
|
332
342
|
BUNDLED WITH
|
333
|
-
2.2.
|
343
|
+
2.2.26
|
data/lib/cloudtasker/config.rb
CHANGED
@@ -7,7 +7,8 @@ module Cloudtasker
|
|
7
7
|
class Config
|
8
8
|
attr_accessor :redis, :store_payloads_in_redis
|
9
9
|
attr_writer :secret, :gcp_location_id, :gcp_project_id,
|
10
|
-
:gcp_queue_prefix, :processor_path, :logger, :mode, :max_retries,
|
10
|
+
:gcp_queue_prefix, :processor_path, :logger, :mode, :max_retries,
|
11
|
+
:dispatch_deadline, :on_error, :on_dead
|
11
12
|
|
12
13
|
# Max Cloud Task size in bytes
|
13
14
|
MAX_TASK_SIZE = 100 * 1024 # 100 KB
|
@@ -51,6 +52,9 @@ module Cloudtasker
|
|
51
52
|
MIN_DISPATCH_DEADLINE = 15 # seconds
|
52
53
|
MAX_DISPATCH_DEADLINE = 30 * 60 # 30 minutes
|
53
54
|
|
55
|
+
# Default on_error Proc
|
56
|
+
DEFAULT_ON_ERROR = ->(error, worker) {}
|
57
|
+
|
54
58
|
# The number of times jobs will be attempted before declaring them dead.
|
55
59
|
#
|
56
60
|
# With the default retry configuration (maxDoublings = 16 and minBackoff = 0.100s)
|
@@ -229,11 +233,31 @@ module Cloudtasker
|
|
229
233
|
# @return [String] The cloudtasker secret
|
230
234
|
#
|
231
235
|
def secret
|
232
|
-
@secret
|
236
|
+
@secret ||= (
|
233
237
|
defined?(Rails) && Rails.application.credentials&.dig(:secret_key_base)
|
234
238
|
) || raise(StandardError, SECRET_MISSING_ERROR)
|
235
239
|
end
|
236
240
|
|
241
|
+
#
|
242
|
+
# Return a Proc invoked whenever a worker runtime error is raised.
|
243
|
+
# See Cloudtasker::WorkerHandler.with_worker_handling
|
244
|
+
#
|
245
|
+
# @return [Proc] A Proc handler
|
246
|
+
#
|
247
|
+
def on_error
|
248
|
+
@on_error || DEFAULT_ON_ERROR
|
249
|
+
end
|
250
|
+
|
251
|
+
#
|
252
|
+
# Return a Proc invoked whenever a worker DeadWorkerError is raised.
|
253
|
+
# See Cloudtasker::WorkerHandler.with_worker_handling
|
254
|
+
#
|
255
|
+
# @return [Proc] A Proc handler
|
256
|
+
#
|
257
|
+
def on_dead
|
258
|
+
@on_dead || DEFAULT_ON_ERROR
|
259
|
+
end
|
260
|
+
|
237
261
|
#
|
238
262
|
# Return the chain of client middlewares.
|
239
263
|
#
|
@@ -69,7 +69,7 @@ module Cloudtasker
|
|
69
69
|
|
70
70
|
# Process tasks
|
71
71
|
while @threads[queue].count < max_threads && (task = Cloudtasker::Backend::RedisTask.pop(queue))
|
72
|
-
@threads[queue] << Thread.new { process_task(
|
72
|
+
@threads[queue] << Thread.new(task) { |t| process_task(t) }
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
data/lib/cloudtasker/version.rb
CHANGED
data/lib/cloudtasker/worker.rb
CHANGED
@@ -361,7 +361,7 @@ module Cloudtasker
|
|
361
361
|
# @return [Boolean] True if the arguments are missing.
|
362
362
|
#
|
363
363
|
def arguments_missing?
|
364
|
-
job_args.empty? && [0, -1].
|
364
|
+
job_args.empty? && ![0, -1].include?(method(:perform).arity)
|
365
365
|
end
|
366
366
|
|
367
367
|
#
|