cloudtasker 0.1.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.rubocop.yml +5 -0
  4. data/.travis.yml +10 -1
  5. data/Appraisals +25 -0
  6. data/CHANGELOG.md +25 -0
  7. data/Gemfile.lock +37 -4
  8. data/README.md +573 -6
  9. data/Rakefile +6 -0
  10. data/app/controllers/cloudtasker/application_controller.rb +2 -0
  11. data/app/controllers/cloudtasker/worker_controller.rb +24 -2
  12. data/cloudtasker.gemspec +7 -3
  13. data/docs/BATCH_JOBS.md +66 -0
  14. data/docs/CRON_JOBS.md +63 -0
  15. data/docs/UNIQUE_JOBS.md +127 -0
  16. data/exe/cloudtasker +15 -0
  17. data/gemfiles/.bundle/config +2 -0
  18. data/gemfiles/google_cloud_tasks_1.0.gemfile +9 -0
  19. data/gemfiles/google_cloud_tasks_1.0.gemfile.lock +263 -0
  20. data/gemfiles/google_cloud_tasks_1.1.gemfile +9 -0
  21. data/gemfiles/google_cloud_tasks_1.1.gemfile.lock +263 -0
  22. data/gemfiles/google_cloud_tasks_1.2.gemfile +9 -0
  23. data/gemfiles/google_cloud_tasks_1.2.gemfile.lock +263 -0
  24. data/gemfiles/google_cloud_tasks_1.3.gemfile +9 -0
  25. data/gemfiles/google_cloud_tasks_1.3.gemfile.lock +264 -0
  26. data/gemfiles/rails_4.0.gemfile +10 -0
  27. data/gemfiles/rails_4.1.gemfile +9 -0
  28. data/gemfiles/rails_4.2.gemfile +9 -0
  29. data/gemfiles/rails_5.0.gemfile +9 -0
  30. data/gemfiles/rails_5.1.gemfile +9 -0
  31. data/gemfiles/rails_5.2.gemfile +9 -0
  32. data/gemfiles/rails_5.2.gemfile.lock +247 -0
  33. data/gemfiles/rails_6.0.gemfile +9 -0
  34. data/gemfiles/rails_6.0.gemfile.lock +263 -0
  35. data/lib/cloudtasker.rb +21 -1
  36. data/lib/cloudtasker/backend/google_cloud_task.rb +139 -0
  37. data/lib/cloudtasker/backend/memory_task.rb +190 -0
  38. data/lib/cloudtasker/backend/redis_task.rb +249 -0
  39. data/lib/cloudtasker/batch/batch_progress.rb +19 -1
  40. data/lib/cloudtasker/batch/job.rb +88 -23
  41. data/lib/cloudtasker/batch/middleware.rb +0 -1
  42. data/lib/cloudtasker/cli.rb +194 -0
  43. data/lib/cloudtasker/cloud_task.rb +91 -0
  44. data/lib/cloudtasker/config.rb +64 -2
  45. data/lib/cloudtasker/cron/job.rb +6 -3
  46. data/lib/cloudtasker/cron/middleware.rb +0 -1
  47. data/lib/cloudtasker/cron/schedule.rb +73 -13
  48. data/lib/cloudtasker/dead_worker_error.rb +6 -0
  49. data/lib/cloudtasker/local_server.rb +74 -0
  50. data/lib/cloudtasker/railtie.rb +10 -0
  51. data/lib/cloudtasker/redis_client.rb +24 -2
  52. data/lib/cloudtasker/testing.rb +133 -0
  53. data/lib/cloudtasker/unique_job/job.rb +5 -2
  54. data/lib/cloudtasker/unique_job/lock/base_lock.rb +1 -1
  55. data/lib/cloudtasker/unique_job/lock/until_executed.rb +3 -1
  56. data/lib/cloudtasker/unique_job/lock/while_executing.rb +3 -1
  57. data/lib/cloudtasker/unique_job/middleware.rb +0 -1
  58. data/lib/cloudtasker/version.rb +1 -1
  59. data/lib/cloudtasker/worker.rb +59 -16
  60. data/lib/cloudtasker/{task.rb → worker_handler.rb} +10 -77
  61. data/lib/cloudtasker/worker_logger.rb +155 -0
  62. data/lib/tasks/setup_queue.rake +10 -0
  63. metadata +98 -9
  64. data/lib/cloudtasker/batch/config.rb +0 -11
  65. data/lib/cloudtasker/cron/config.rb +0 -11
  66. data/lib/cloudtasker/unique_job/config.rb +0 -10
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cloudtasker/backend/google_cloud_task'
4
+
5
+ namespace :cloudtasker do
6
+ desc 'Setup the Cloud Task queue'
7
+ task setup_queue: :environment do
8
+ Cloudtasker::Backend::GoogleCloudTask.setup_queue
9
+ end
10
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudtasker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.6.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: 2019-11-17 00:00:00.000000000 Z
11
+ date: 2019-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: fugit
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,20 @@ dependencies:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: appraisal
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: bundler
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +108,20 @@ dependencies:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
110
  version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: github_changelog_generator
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
83
125
  - !ruby/object:Gem::Dependency
84
126
  name: rake
85
127
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +192,20 @@ dependencies:
150
192
  - - ">="
151
193
  - !ruby/object:Gem::Version
152
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: webmock
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
153
209
  - !ruby/object:Gem::Dependency
154
210
  name: rails
155
211
  requirement: !ruby/object:Gem::Requirement
@@ -192,10 +248,11 @@ dependencies:
192
248
  - - ">="
193
249
  - !ruby/object:Gem::Version
194
250
  version: '0'
195
- description: Manage GCP Cloud Tasks in your app.
251
+ description: Background jobs for Ruby using Google Cloud Tasks (alpha)
196
252
  email:
197
253
  - arnaud.lachaume@keypup.io
198
- executables: []
254
+ executables:
255
+ - cloudtasker
199
256
  extensions: []
200
257
  extra_rdoc_files: []
201
258
  files:
@@ -203,6 +260,8 @@ files:
203
260
  - ".rspec"
204
261
  - ".rubocop.yml"
205
262
  - ".travis.yml"
263
+ - Appraisals
264
+ - CHANGELOG.md
206
265
  - CODE_OF_CONDUCT.md
207
266
  - Gemfile
208
267
  - Gemfile.lock
@@ -215,31 +274,58 @@ files:
215
274
  - bin/setup
216
275
  - cloudtasker.gemspec
217
276
  - config/routes.rb
277
+ - docs/BATCH_JOBS.md
278
+ - docs/CRON_JOBS.md
279
+ - docs/UNIQUE_JOBS.md
280
+ - exe/cloudtasker
281
+ - gemfiles/.bundle/config
282
+ - gemfiles/google_cloud_tasks_1.0.gemfile
283
+ - gemfiles/google_cloud_tasks_1.0.gemfile.lock
284
+ - gemfiles/google_cloud_tasks_1.1.gemfile
285
+ - gemfiles/google_cloud_tasks_1.1.gemfile.lock
286
+ - gemfiles/google_cloud_tasks_1.2.gemfile
287
+ - gemfiles/google_cloud_tasks_1.2.gemfile.lock
288
+ - gemfiles/google_cloud_tasks_1.3.gemfile
289
+ - gemfiles/google_cloud_tasks_1.3.gemfile.lock
290
+ - gemfiles/rails_4.0.gemfile
291
+ - gemfiles/rails_4.1.gemfile
292
+ - gemfiles/rails_4.2.gemfile
293
+ - gemfiles/rails_5.0.gemfile
294
+ - gemfiles/rails_5.1.gemfile
295
+ - gemfiles/rails_5.2.gemfile
296
+ - gemfiles/rails_5.2.gemfile.lock
297
+ - gemfiles/rails_6.0.gemfile
298
+ - gemfiles/rails_6.0.gemfile.lock
218
299
  - lib/cloudtasker.rb
219
300
  - lib/cloudtasker/authentication_error.rb
220
301
  - lib/cloudtasker/authenticator.rb
302
+ - lib/cloudtasker/backend/google_cloud_task.rb
303
+ - lib/cloudtasker/backend/memory_task.rb
304
+ - lib/cloudtasker/backend/redis_task.rb
221
305
  - lib/cloudtasker/batch.rb
222
306
  - lib/cloudtasker/batch/batch_progress.rb
223
- - lib/cloudtasker/batch/config.rb
224
307
  - lib/cloudtasker/batch/extension/worker.rb
225
308
  - lib/cloudtasker/batch/job.rb
226
309
  - lib/cloudtasker/batch/middleware.rb
227
310
  - lib/cloudtasker/batch/middleware/server.rb
311
+ - lib/cloudtasker/cli.rb
312
+ - lib/cloudtasker/cloud_task.rb
228
313
  - lib/cloudtasker/config.rb
229
314
  - lib/cloudtasker/cron.rb
230
- - lib/cloudtasker/cron/config.rb
231
315
  - lib/cloudtasker/cron/job.rb
232
316
  - lib/cloudtasker/cron/middleware.rb
233
317
  - lib/cloudtasker/cron/middleware/server.rb
234
318
  - lib/cloudtasker/cron/schedule.rb
319
+ - lib/cloudtasker/dead_worker_error.rb
235
320
  - lib/cloudtasker/engine.rb
236
321
  - lib/cloudtasker/invalid_worker_error.rb
322
+ - lib/cloudtasker/local_server.rb
237
323
  - lib/cloudtasker/meta_store.rb
238
324
  - lib/cloudtasker/middleware/chain.rb
325
+ - lib/cloudtasker/railtie.rb
239
326
  - lib/cloudtasker/redis_client.rb
240
- - lib/cloudtasker/task.rb
327
+ - lib/cloudtasker/testing.rb
241
328
  - lib/cloudtasker/unique_job.rb
242
- - lib/cloudtasker/unique_job/config.rb
243
329
  - lib/cloudtasker/unique_job/conflict_strategy/base_strategy.rb
244
330
  - lib/cloudtasker/unique_job/conflict_strategy/raise.rb
245
331
  - lib/cloudtasker/unique_job/conflict_strategy/reject.rb
@@ -256,6 +342,9 @@ files:
256
342
  - lib/cloudtasker/unique_job/middleware/server.rb
257
343
  - lib/cloudtasker/version.rb
258
344
  - lib/cloudtasker/worker.rb
345
+ - lib/cloudtasker/worker_handler.rb
346
+ - lib/cloudtasker/worker_logger.rb
347
+ - lib/tasks/setup_queue.rake
259
348
  homepage: https://github.com/keypup-io/cloudtasker
260
349
  licenses:
261
350
  - MIT
@@ -282,5 +371,5 @@ rubyforge_project:
282
371
  rubygems_version: 2.7.9
283
372
  signing_key:
284
373
  specification_version: 4
285
- summary: Manage GCP Cloud Tasks in your app.
374
+ summary: Background jobs for Ruby using Google Cloud Tasks (alpha)
286
375
  test_files: []
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fugit'
4
-
5
- module Cloudtasker
6
- module Batch
7
- class Config
8
- KEY_NAMESPACE = 'cloudtasker-batch'
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'fugit'
4
-
5
- module Cloudtasker
6
- module Cron
7
- class Config
8
- KEY_NAMESPACE = 'cloudtasker-cron'
9
- end
10
- end
11
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Cloudtasker
4
- module UniqueJob
5
- # Manage UniqueJob configuration
6
- class Config
7
- KEY_NAMESPACE = 'cloudtasker-unique_job'
8
- end
9
- end
10
- end