cloudtasker 0.10.1 → 0.11.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +1 -1
- data/app/controllers/cloudtasker/worker_controller.rb +15 -4
- data/lib/cloudtasker.rb +1 -0
- data/lib/cloudtasker/missing_worker_arguments_error.rb +6 -0
- data/lib/cloudtasker/version.rb +1 -1
- data/lib/cloudtasker/worker.rb +7 -0
- data/lib/cloudtasker/worker_handler.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a0759638a4af47fcc26467b93039b3c6355908db5cafd0a20972b7e48649b81
|
4
|
+
data.tar.gz: a0f76c953bc0f64276f5b10f90300bcf7415dbfe305fac6697e4bd9fb83b53c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef16621727a56793623e1c582bac1f6e4971b8ff1af3ee36a3d37b22d239f7bb3504a35b5f1ffc9f250343b2ed5ae888e75b8d583b49487f34dc69eb45cd9d13
|
7
|
+
data.tar.gz: aea0fa6eb2873f6b99df05c613d89363a3c6103fe814123d25a7508ede1fbf92cf653d10e7d57863d7ec6065d1c96e5c5f3ecf371a75ac925a588693849c320e
|
data/CHANGELOG.md
CHANGED
@@ -5,7 +5,9 @@
|
|
5
5
|
[Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.10.0...v0.10.1)
|
6
6
|
|
7
7
|
**Fixed bugs:**
|
8
|
+
- Local server: delete dead task from local server queue
|
8
9
|
- Logging: fix log processing with `semantic_logger` `v4.7.2`. Accept any args on block passed to the logger.
|
10
|
+
- Worker: fix configuration of `max_retries` at worker level
|
9
11
|
|
10
12
|
## [v0.10.0](https://github.com/keypup-io/cloudtasker/tree/v0.10.0) (2020-09-02)
|
11
13
|
|
@@ -25,6 +27,13 @@
|
|
25
27
|
- Google API: improve error handling on job creation
|
26
28
|
- Google API: use the `X-CloudTasks-TaskRetryCount` instead of `X-CloudTasks-TaskExecutionCount` to detect how many retries Google Cloud Tasks has performed. Using `X-CloudTasks-TaskRetryCount` is theoretically less accurate than using `X-CloudTasks-TaskExecutionCount` because it includes the number of "app unreachable" retries but `X-CloudTasks-TaskExecutionCount` is currently bugged and remains at zero all the time. See [this issue](https://github.com/keypup-io/cloudtasker/issues/6)
|
27
29
|
|
30
|
+
## [v0.9.4](https://github.com/keypup-io/cloudtasker/tree/v0.9.4) (2020-10-05)
|
31
|
+
|
32
|
+
[Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.3...v0.9.4)
|
33
|
+
|
34
|
+
**Fixed bugs:**
|
35
|
+
- Logging: fix log processing with `semantic_logger` `v4.7.2`. Accept any args on block passed to the logger.
|
36
|
+
|
28
37
|
## [v0.9.3](https://github.com/keypup-io/cloudtasker/tree/v0.9.3) (2020-06-25)
|
29
38
|
|
30
39
|
[Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.2...v0.9.3)
|
data/README.md
CHANGED
@@ -19,21 +19,32 @@ module Cloudtasker
|
|
19
19
|
# Process payload
|
20
20
|
WorkerHandler.execute_from_payload!(payload)
|
21
21
|
head :no_content
|
22
|
-
rescue DeadWorkerError
|
22
|
+
rescue DeadWorkerError, MissingWorkerArgumentsError => e
|
23
23
|
# 205: job will NOT be retried
|
24
|
+
log_error(e)
|
24
25
|
head :reset_content
|
25
|
-
rescue InvalidWorkerError
|
26
|
+
rescue InvalidWorkerError => e
|
26
27
|
# 404: Job will be retried
|
28
|
+
log_error(e)
|
27
29
|
head :not_found
|
28
30
|
rescue StandardError => e
|
29
31
|
# 404: Job will be retried
|
30
|
-
|
31
|
-
Cloudtasker.logger.error(e.backtrace.join("\n"))
|
32
|
+
log_error(e)
|
32
33
|
head :unprocessable_entity
|
33
34
|
end
|
34
35
|
|
35
36
|
private
|
36
37
|
|
38
|
+
#
|
39
|
+
# Log an error via cloudtasker logger.
|
40
|
+
#
|
41
|
+
# @param [Exception] e The error to log
|
42
|
+
#
|
43
|
+
def log_error(error)
|
44
|
+
Cloudtasker.logger.error(error)
|
45
|
+
Cloudtasker.logger.error(error.backtrace.join("\n"))
|
46
|
+
end
|
47
|
+
|
37
48
|
#
|
38
49
|
# Parse the request body and return the actual job
|
39
50
|
# payload.
|
data/lib/cloudtasker.rb
CHANGED
@@ -8,6 +8,7 @@ require 'cloudtasker/config'
|
|
8
8
|
require 'cloudtasker/authentication_error'
|
9
9
|
require 'cloudtasker/dead_worker_error'
|
10
10
|
require 'cloudtasker/invalid_worker_error'
|
11
|
+
require 'cloudtasker/missing_worker_arguments_error'
|
11
12
|
require 'cloudtasker/max_task_size_exceeded_error'
|
12
13
|
|
13
14
|
require 'cloudtasker/middleware/chain'
|
data/lib/cloudtasker/version.rb
CHANGED
data/lib/cloudtasker/worker.rb
CHANGED
@@ -347,6 +347,13 @@ module Cloudtasker
|
|
347
347
|
|
348
348
|
Cloudtasker.config.server_middleware.invoke(self) do
|
349
349
|
begin
|
350
|
+
# Abort if arguments are missing. This may happen with redis arguments storage
|
351
|
+
# if Cloud Tasks times out on a job but the job still succeeds
|
352
|
+
if job_args.empty? && [0, -1].exclude?(method(:perform).arity)
|
353
|
+
raise(MissingWorkerArgumentsError, 'worker arguments are missing')
|
354
|
+
end
|
355
|
+
|
356
|
+
# Perform the job
|
350
357
|
perform(*job_args)
|
351
358
|
rescue StandardError => e
|
352
359
|
try(:on_error, e)
|
@@ -85,7 +85,7 @@ module Cloudtasker
|
|
85
85
|
redis.expire(args_payload_key, ARGS_PAYLOAD_CLEANUP_TTL) if args_payload_key && !worker.job_reenqueued
|
86
86
|
|
87
87
|
resp
|
88
|
-
rescue DeadWorkerError => e
|
88
|
+
rescue DeadWorkerError, MissingWorkerArgumentsError => e
|
89
89
|
# Delete stored args payload if job is dead
|
90
90
|
redis.expire(args_payload_key, ARGS_PAYLOAD_CLEANUP_TTL) if args_payload_key
|
91
91
|
raise(e)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudtasker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arnaud Lachaume
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-10-
|
11
|
+
date: 2020-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -370,6 +370,7 @@ files:
|
|
370
370
|
- lib/cloudtasker/max_task_size_exceeded_error.rb
|
371
371
|
- lib/cloudtasker/meta_store.rb
|
372
372
|
- lib/cloudtasker/middleware/chain.rb
|
373
|
+
- lib/cloudtasker/missing_worker_arguments_error.rb
|
373
374
|
- lib/cloudtasker/redis_client.rb
|
374
375
|
- lib/cloudtasker/testing.rb
|
375
376
|
- lib/cloudtasker/unique_job.rb
|
@@ -411,9 +412,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
411
412
|
version: '0'
|
412
413
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
413
414
|
requirements:
|
414
|
-
- - "
|
415
|
+
- - ">"
|
415
416
|
- !ruby/object:Gem::Version
|
416
|
-
version:
|
417
|
+
version: 1.3.1
|
417
418
|
requirements: []
|
418
419
|
rubygems_version: 3.0.0
|
419
420
|
signing_key:
|