cloudtasker 0.9.5 → 0.10.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|