cloudtasker 0.10.rc8 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d8d250dbd0e47a0e1f102a131dd831d44d4db4272c5aa429caa0c27d00cf4f7
4
- data.tar.gz: 4e6ea0c77b8be277e74e1a54d227389fd61c9568cedddcdbb94d3fc9c1a6788e
3
+ metadata.gz: 0a7bb0597bbd5656c6c6c273b4a65097c0b9c44be4b5944a5c1fbdf2d03f9c7c
4
+ data.tar.gz: c1e1d33203c8dfa5a090427c91f7b94e6046fbc0037fbb74285e61851cab3f93
5
5
  SHA512:
6
- metadata.gz: 8fdeafa8bfcb2f50695faaca28618f572d1610bfb15acd63b9766cd46c0449171384dc4eaef459b1b68cfc50700acb321fd4bbfde20664311f899bcdc1db9d58
7
- data.tar.gz: 59ba684ad2a9358904cc6a7d6fcce46f5ae3e48d1cded624f77145b552a7693914552230fb7e210832b681c7cbb47b2a413ddd40eb8fba560a734e385b4b8a2b
6
+ metadata.gz: a03d48359589520a040e8214ed40d778aece0e667de81bfb15b447c4f4f93f296955b08624c9fa1a5e8ca5e5cb6773389b490566f076f0e1f50ebbf0c46d376a
7
+ data.tar.gz: 5f64a1e30faa954e2e046f787c216b9c02a992493561abe5dbbef9a7678833ef1644947b4e6f3743ebe43c79c62d90c48b46c91a6002088f88e94e7689b91a6d
@@ -2,9 +2,9 @@ name: Test
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ master ]
5
+ branches: [ master, 0.9-stable ]
6
6
  pull_request:
7
- branches: [ master ]
7
+ branches: [ master, 0.9-stable ]
8
8
 
9
9
  jobs:
10
10
  build:
@@ -38,4 +38,4 @@ jobs:
38
38
  bundle install --jobs 4 --retry 3
39
39
  bundle exec rubocop
40
40
  bundle exec appraisal ${APPRAISAL_CONTEXT} bundle
41
- bundle exec appraisal ${APPRAISAL_CONTEXT} rspec
41
+ bundle exec appraisal ${APPRAISAL_CONTEXT} rspec
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.10.0](https://github.com/keypup-io/cloudtasker/tree/v0.10.0) (2020-09-02)
4
+
5
+ [Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.3...v0.10.0)
6
+
7
+ **Improvements:**
8
+ - Logging: Add worker name in log messages
9
+ - Logging: Add job duration in log messages
10
+ - Logging: Add Cloud Cloud Task ID in log messages
11
+ - Unique Job: Support TTL for lock keys. This feature prevents queues from being dead-locked when a critical crash occurs while processing a unique job.
12
+ - Worker: support payload storage in Redis instead of sending the payload to Google Cloud Tasks. This is useful when job arguments are expected to exceed 100kb, which is the limit set by Google Cloud Tasks
13
+
14
+ **Fixed bugs:**
15
+ - Local processing error: improve error handling and retries around network interruptions
16
+ - Redis client: prevent deadlocks in high concurrency scenario by slowing down poll time and enforcing lock expiration
17
+ - Redis client: use connecion pool with Redis to prevent race conditions
18
+ - Google API: improve error handling on job creation
19
+ - 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)
20
+
21
+ ## [v0.9.3](https://github.com/keypup-io/cloudtasker/tree/v0.9.3) (2020-06-25)
22
+
23
+ [Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.2...v0.9.3)
24
+
25
+ **Fixed bugs:**
26
+ - Google Cloud Tasks: lock version to `~> 1.0` (Google recently released a v2 which changes its bindings completely). An [issue](https://github.com/keypup-io/cloudtasker/issues/11) has been raised to upgrade Cloudtasker to `google-cloud-tasks` `v2`.
27
+
3
28
  ## [v0.9.2](https://github.com/keypup-io/cloudtasker/tree/v0.9.2) (2020-03-04)
4
29
 
5
30
  [Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.1...v0.9.2)
data/README.md CHANGED
@@ -250,7 +250,7 @@ Cloudtasker.configure do |config|
250
250
  # You can set this configuration parameter to a KB value if you want to store jobs
251
251
  # args in redis only if the JSONified arguments payload exceeds that threshold.
252
252
  #
253
- # Supported since: v0.10.rc1
253
+ # Supported since: v0.10.0
254
254
  #
255
255
  # Default: false
256
256
  #
@@ -508,7 +508,7 @@ end
508
508
  See the [Cloudtasker::Worker class](lib/cloudtasker/worker.rb) for more information on attributes available to be logged in your `log_context_processor` proc.
509
509
 
510
510
  ### Searching logs: Job ID vs Task ID
511
- **Note**: `task_id` field is available in logs starting with `0.10.rc6`
511
+ **Note**: `task_id` field is available in logs starting with `0.10.0`
512
512
 
513
513
  Job instances are assigned two different different IDs for tracking and logging purpose: `job_id` and `task_id`. These IDs are found in each log entry to facilitate search.
514
514
 
@@ -571,7 +571,7 @@ By default jobs are retried 25 times - using an exponential backoff - before bei
571
571
 
572
572
  Note that the number of retries set on your Cloud Task queue should be many times higher than the number of retries configured in Cloudtasker because Cloud Task also includes failures to connect to your application. Ideally set the number of retries to `unlimited` in Cloud Tasks.
573
573
 
574
- **Note**: The `X-CloudTasks-TaskExecutionCount` header sent by Google Cloud Tasks and providing the number of retries outside of `HTTP 503` (instance not reachable) is currently bugged and remains at `0` all the time. Starting with `v0.10.rc3` Cloudtasker uses the `X-CloudTasks-TaskRetryCount` header to detect the number of retries. This header includes `HTTP 503` errors which means that if your application is down at some point, jobs will fail and these failures will be counted toward the maximum number of retries. A [bug report](https://issuetracker.google.com/issues/154532072) has been raised with GCP to address this issue. Once fixed we will revert to using `X-CloudTasks-TaskExecutionCount` to avoid counting `HTTP 503` as job failures.
574
+ **Note**: The `X-CloudTasks-TaskExecutionCount` header sent by Google Cloud Tasks and providing the number of retries outside of `HTTP 503` (instance not reachable) is currently bugged and remains at `0` all the time. Starting with `v0.10.0` Cloudtasker uses the `X-CloudTasks-TaskRetryCount` header to detect the number of retries. This header includes `HTTP 503` errors which means that if your application is down at some point, jobs will fail and these failures will be counted toward the maximum number of retries. A [bug report](https://issuetracker.google.com/issues/154532072) has been raised with GCP to address this issue. Once fixed we will revert to using `X-CloudTasks-TaskExecutionCount` to avoid counting `HTTP 503` as job failures.
575
575
 
576
576
  E.g. Set max number of retries globally via the cloudtasker initializer.
577
577
  ```ruby
@@ -772,7 +772,7 @@ Google Cloud Tasks enforces a limit of 100 KB for job payloads. Taking into acco
772
772
  Any excessive job payload (> 100 KB) will raise a `Cloudtasker::MaxTaskSizeExceededError`, both in production and development mode.
773
773
 
774
774
  #### Option 1: Use Cloudtasker optional support for payload storage in Redis
775
- **Supported since**: `0.10.rc1`
775
+ **Supported since**: `0.10.0`
776
776
 
777
777
  Cloudtasker provides optional support for storing argument payloads in Redis instead of sending them to Google Cloud Tasks.
778
778
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cloudtasker
4
- VERSION = '0.10.rc8'
4
+ VERSION = '0.10.0'
5
5
  end
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.10.rc8
4
+ version: 0.10.0
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-06-24 00:00:00.000000000 Z
11
+ date: 2020-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -392,9 +392,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
392
392
  version: '0'
393
393
  required_rubygems_version: !ruby/object:Gem::Requirement
394
394
  requirements:
395
- - - ">"
395
+ - - ">="
396
396
  - !ruby/object:Gem::Version
397
- version: 1.3.1
397
+ version: '0'
398
398
  requirements: []
399
399
  rubygems_version: 3.0.0
400
400
  signing_key: