cloudtasker 0.9.5 → 0.10.rc1
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/.rubocop.yml +1 -1
- data/.travis.yml +16 -0
- data/Appraisals +0 -16
- data/CHANGELOG.md +0 -22
- data/README.md +40 -1
- data/app/controllers/cloudtasker/application_controller.rb +8 -0
- data/app/controllers/cloudtasker/worker_controller.rb +1 -4
- data/cloudtasker.gemspec +1 -2
- data/gemfiles/google_cloud_tasks_1.0.gemfile +5 -3
- data/gemfiles/google_cloud_tasks_1.0.gemfile.lock +154 -208
- data/gemfiles/google_cloud_tasks_1.1.gemfile +5 -3
- data/gemfiles/google_cloud_tasks_1.1.gemfile.lock +154 -208
- data/gemfiles/google_cloud_tasks_1.2.gemfile +5 -3
- data/gemfiles/google_cloud_tasks_1.2.gemfile.lock +154 -208
- data/gemfiles/google_cloud_tasks_1.3.gemfile +5 -3
- data/gemfiles/google_cloud_tasks_1.3.gemfile.lock +154 -208
- data/gemfiles/rails_5.2.gemfile +5 -3
- data/gemfiles/rails_5.2.gemfile.lock +91 -146
- data/gemfiles/rails_6.0.gemfile +5 -3
- data/gemfiles/rails_6.0.gemfile.lock +92 -147
- data/lib/cloudtasker/backend/google_cloud_task.rb +1 -1
- data/lib/cloudtasker/backend/memory_task.rb +8 -23
- data/lib/cloudtasker/config.rb +16 -1
- data/lib/cloudtasker/testing.rb +2 -2
- data/lib/cloudtasker/version.rb +1 -1
- data/lib/cloudtasker/worker_handler.rb +142 -5
- data/lib/cloudtasker/worker_logger.rb +1 -2
- data/lib/cloudtasker.rb +0 -1
- metadata +15 -32
- data/.github/workflows/test.yml +0 -45
- data/gemfiles/semantic_logger_3.4.gemfile +0 -7
- data/gemfiles/semantic_logger_4.6.gemfile +0 -7
- data/gemfiles/semantic_logger_4.7.0.gemfile +0 -7
- data/gemfiles/semantic_logger_4.7.2.gemfile +0 -7
- data/gemfiles/semantic_logger_4.7.gemfile +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4cba7de3e429d612adf6c9c2f4424b6ef73db39d4db93b70804800300011e1b
|
4
|
+
data.tar.gz: 3775cdf3f16430cf8decd49dfc28be9e26f0ef6a63d45224bdc5ed11b13a86fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e2e15dc54fad72e3508763855a99804b591126968ccbcaccd8211d51b8b1e28bf6d2907c746f2b14c53c3c065ce1eb06871f30b39419df1f3d7b8a4e1b1fded
|
7
|
+
data.tar.gz: a2808491a7251b5212587351deb84a99f688a62f7a54c3f5b9c8ebe3a3b6a1ca6adda6ffe898424069223cef8260f1a49c8a086010c0e59dedc5e50ed371e830
|
data/.rubocop.yml
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
language: ruby
|
3
|
+
cache: bundler
|
4
|
+
rvm:
|
5
|
+
- 2.5.5
|
6
|
+
services:
|
7
|
+
- redis-server
|
8
|
+
before_install: gem install bundler -v 2.0.2
|
9
|
+
before_script: bundle exec rubocop
|
10
|
+
gemfile:
|
11
|
+
- gemfiles/google_cloud_tasks_1.0.gemfile
|
12
|
+
- gemfiles/google_cloud_tasks_1.1.gemfile
|
13
|
+
- gemfiles/google_cloud_tasks_1.2.gemfile
|
14
|
+
- gemfiles/google_cloud_tasks_1.3.gemfile
|
15
|
+
- gemfiles/rails_5.2.gemfile
|
16
|
+
- gemfiles/rails_6.0.gemfile
|
data/Appraisals
CHANGED
@@ -23,19 +23,3 @@ end
|
|
23
23
|
appraise 'rails-6.0' do
|
24
24
|
gem 'rails', '6.0'
|
25
25
|
end
|
26
|
-
|
27
|
-
appraise 'semantic_logger-3.4' do
|
28
|
-
gem 'semantic_logger', '3.4.1'
|
29
|
-
end
|
30
|
-
|
31
|
-
appraise 'semantic_logger-4.6' do
|
32
|
-
gem 'semantic_logger', '4.6.1'
|
33
|
-
end
|
34
|
-
|
35
|
-
appraise 'semantic_logger-4.7.0' do
|
36
|
-
gem 'semantic_logger', '4.7.0'
|
37
|
-
end
|
38
|
-
|
39
|
-
appraise 'semantic_logger-4.7.2' do
|
40
|
-
gem 'semantic_logger', '4.7.2'
|
41
|
-
end
|
data/CHANGELOG.md
CHANGED
@@ -1,27 +1,5 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [v0.9.5](https://github.com/keypup-io/cloudtasker/tree/v0.9.5) (2021-08-25)
|
4
|
-
|
5
|
-
[Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.4...v0.9.5)
|
6
|
-
|
7
|
-
**Fixed bugs:**
|
8
|
-
- Dependencies: Require `try` from `activesupport`. This was preventing non-Rails projects from properly running Cloudtasker jobs.
|
9
|
-
- WorkerController: remove useless inheritance from local ApplicationController. The parent controller was not always loaded on Rails 5 which in turn created issues with authenticity token. Fixes [#40](https://github.com/keypup-io/cloudtasker/issues/40)
|
10
|
-
|
11
|
-
## [v0.9.4](https://github.com/keypup-io/cloudtasker/tree/v0.9.4) (2020-10-05)
|
12
|
-
|
13
|
-
[Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.3...v0.9.4)
|
14
|
-
|
15
|
-
**Fixed bugs:**
|
16
|
-
- Logging: fix log processing with `semantic_logger` `v4.7.2`. Accept any args on block passed to the logger.
|
17
|
-
|
18
|
-
## [v0.9.3](https://github.com/keypup-io/cloudtasker/tree/v0.9.3) (2020-06-25)
|
19
|
-
|
20
|
-
[Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.2...v0.9.3)
|
21
|
-
|
22
|
-
**Fixed bugs:**
|
23
|
-
- 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`.
|
24
|
-
|
25
3
|
## [v0.9.2](https://github.com/keypup-io/cloudtasker/tree/v0.9.2) (2020-03-04)
|
26
4
|
|
27
5
|
[Full Changelog](https://github.com/keypup-io/cloudtasker/compare/v0.9.1...v0.9.2)
|
data/README.md
CHANGED
@@ -224,7 +224,7 @@ Cloudtasker.configure do |config|
|
|
224
224
|
#
|
225
225
|
# config.max_retries = 10
|
226
226
|
|
227
|
-
#
|
227
|
+
#
|
228
228
|
# Specify the redis connection hash.
|
229
229
|
#
|
230
230
|
# This is ONLY required in development for the Cloudtasker local server and in
|
@@ -235,6 +235,24 @@ Cloudtasker.configure do |config|
|
|
235
235
|
# Default: redis-rb connects to redis://127.0.0.1:6379/0
|
236
236
|
#
|
237
237
|
# config.redis = { url: 'redis://localhost:6379/5' }
|
238
|
+
|
239
|
+
#
|
240
|
+
# Set to true to store job arguments in Redis instead of sending arguments as part
|
241
|
+
# of the job payload to Google Cloud Tasks.
|
242
|
+
#
|
243
|
+
# This is useful if you expect to process jobs with payloads exceeding 100KB, which
|
244
|
+
# is the limit enforced by Google Cloud Tasks.
|
245
|
+
#
|
246
|
+
# You can set this configuration parameter to a KB value if you want to store jobs
|
247
|
+
# args in redis only if the JSONified arguments payload exceeds that threshold.
|
248
|
+
#
|
249
|
+
# Default: false
|
250
|
+
#
|
251
|
+
# Store all job payloads in Redis:
|
252
|
+
# config.store_payloads_in_redis = true
|
253
|
+
#
|
254
|
+
# Store all job payloads in Redis exceeding 50 KB:
|
255
|
+
# config.store_payloads_in_redis = 50
|
238
256
|
end
|
239
257
|
```
|
240
258
|
|
@@ -639,6 +657,27 @@ Google Cloud Tasks enforces a limit of 100 KB for job payloads. Taking into acco
|
|
639
657
|
|
640
658
|
Any excessive job payload (> 100 KB) will raise a `Cloudtasker::MaxTaskSizeExceededError`, both in production and development mode.
|
641
659
|
|
660
|
+
#### Option 1: Use Cloudtasker optional support for payload storage in Redis
|
661
|
+
Cloudtasker provides optional support for storing argument payloads in Redis instead of sending them to Google Cloud Tasks.
|
662
|
+
|
663
|
+
To enable it simply put the following in your Cloudtasker initializer:
|
664
|
+
```ruby
|
665
|
+
# config/initializers/cloudtasker.rb
|
666
|
+
|
667
|
+
Cloudtasker.configure do |config|
|
668
|
+
# Enable Redis support. Specify your redis connection
|
669
|
+
config.redis = { url: 'redis://localhost:6379/5' }
|
670
|
+
|
671
|
+
# Store all job payloads in Redis:
|
672
|
+
config.store_payloads_in_redis = true
|
673
|
+
|
674
|
+
# OR: store all job payloads in Redis exceeding 50 KB:
|
675
|
+
# config.store_payloads_in_redis = 50
|
676
|
+
end
|
677
|
+
```
|
678
|
+
|
679
|
+
#### Option 2: Do it yourself solution
|
680
|
+
|
642
681
|
If you feel that a job payload is going to get big, prefer to store the payload using a datastore (e.g. Redis) and pass a reference to the job to retrieve the payload inside your job `perform` method.
|
643
682
|
|
644
683
|
E.g. Define a job like this
|
@@ -2,10 +2,7 @@
|
|
2
2
|
|
3
3
|
module Cloudtasker
|
4
4
|
# Handle execution of workers
|
5
|
-
class WorkerController <
|
6
|
-
# No need for CSRF verification on API endpoints
|
7
|
-
skip_before_action :verify_authenticity_token
|
8
|
-
|
5
|
+
class WorkerController < ApplicationController
|
9
6
|
# Authenticate all requests.
|
10
7
|
before_action :authenticate!
|
11
8
|
|
data/cloudtasker.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
|
33
33
|
spec.add_dependency 'activesupport'
|
34
34
|
spec.add_dependency 'fugit'
|
35
|
-
spec.add_dependency 'google-cloud-tasks'
|
35
|
+
spec.add_dependency 'google-cloud-tasks'
|
36
36
|
spec.add_dependency 'jwt'
|
37
37
|
spec.add_dependency 'redis'
|
38
38
|
|
@@ -43,7 +43,6 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
44
44
|
spec.add_development_dependency 'rubocop', '0.76.0'
|
45
45
|
spec.add_development_dependency 'rubocop-rspec', '1.37.0'
|
46
|
-
spec.add_development_dependency 'semantic_logger'
|
47
46
|
spec.add_development_dependency 'timecop'
|
48
47
|
spec.add_development_dependency 'webmock'
|
49
48
|
|