taskinator 0.3.11 → 0.3.16

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e57a5add32ebc7ffc6af22bbe9768db6c89f896f
4
- data.tar.gz: 434f7323883114425d9f24351f503557a2cc72c2
2
+ SHA256:
3
+ metadata.gz: 231c6c9f1bdcf8bb1a7fb38c0ebd0c893f61f49051d94ace5714233a207ad651
4
+ data.tar.gz: 9c66bf91f8420f3fff69487e095a5c36986409f7249224f03ba0b53fdd427190
5
5
  SHA512:
6
- metadata.gz: 917159bb5af8a31a8ea8ef8dc76b2cdb1a0c78336fc163fd38af2b63e327692550e3eecf92275bdc5f3fe24f7e17ab93d053809bb3a23b99ed69b1d9b01d9938
7
- data.tar.gz: 0ff149a53cb1952b160e9cf3c4d3eb196da080c2dd0f63112a63c0511cec01258f5d47a548326ddd03cbeda5cf8fd056fb85c54d57677e2a0a41aba363d30eec
6
+ metadata.gz: 0e322ccc3214ed171bd75b14b4ebaa7e51c1e1ba33b3f7f292c707059f166566a8b8c08235442d26922b0cd8a8c2affa320af03d069d33b0fce4d9ffe7485e95
7
+ data.tar.gz: d16a3220d1be357c77e7a47d3e2c426a99549c3d350979f534a176ec3919444551956d4d41e6b7389e245fe39c1286d7ef60e6f07b1155f3aeae7e9cdce1398b
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.3.1
1
+ ruby-2.7.2
data/.travis.yml CHANGED
@@ -6,11 +6,10 @@ services:
6
6
  - redis-server
7
7
 
8
8
  rvm:
9
- - 2.0.0
10
- - 2.1.0
11
- - 2.1.6
12
- - 2.2.0
13
- - 2.2.2
9
+ - 2.4.10
10
+ - 2.5.8
11
+ - 2.6.6
12
+ - 2.7.2
14
13
 
15
14
  script: 'bundle exec rake spec'
16
15
 
data/Gemfile CHANGED
@@ -15,10 +15,10 @@ gem 'resque_spec' , '>= 0.16.0'
15
15
  # other
16
16
  gem 'bundler' , '>= 1.6.0'
17
17
  gem 'rake' , '>= 10.3.0'
18
- gem 'activesupport' , '~> 4.2.0'
18
+ gem 'activesupport' , '~> 5.2.0'
19
19
  gem 'rspec'
20
- gem 'coveralls' , '>= 0.7.0'
20
+ gem 'coveralls' , '>= 0.8.22'
21
21
  gem 'pry' , '>= 0.9.0'
22
22
  gem 'pry-byebug' , '>= 1.3.0'
23
23
 
24
- gem 'fakeredis' , '~> 0.6.0'
24
+ gem 'fakeredis' , '~> 0.7.0'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- taskinator (0.3.11)
4
+ taskinator (0.3.16)
5
5
  builder (>= 3.2.2)
6
6
  connection_pool (>= 2.2.0)
7
7
  globalid (~> 0.3)
@@ -9,108 +9,115 @@ PATH
9
9
  redis (>= 3.2.1)
10
10
  redis-namespace (>= 1.5.2)
11
11
  redis-semaphore (>= 0.2.4)
12
- statsd-ruby (~> 1.2.0)
12
+ statsd-ruby (~> 1.4.0)
13
+ thwait (~> 0.2)
13
14
 
14
15
  GEM
15
16
  remote: https://rubygems.org/
16
17
  specs:
17
- activesupport (4.2.7.1)
18
- i18n (~> 0.7)
19
- json (~> 1.7, >= 1.7.7)
18
+ activesupport (5.2.4.5)
19
+ concurrent-ruby (~> 1.0, >= 1.0.2)
20
+ i18n (>= 0.7, < 2)
20
21
  minitest (~> 5.1)
21
- thread_safe (~> 0.3, >= 0.3.4)
22
22
  tzinfo (~> 1.1)
23
- builder (3.2.2)
24
- byebug (9.0.6)
25
- coderay (1.1.1)
26
- concurrent-ruby (1.0.2)
27
- connection_pool (2.2.0)
28
- coveralls (0.8.15)
23
+ builder (3.2.4)
24
+ byebug (11.1.3)
25
+ coderay (1.1.3)
26
+ concurrent-ruby (1.1.8)
27
+ connection_pool (2.2.3)
28
+ coveralls (0.8.23)
29
29
  json (>= 1.8, < 3)
30
- simplecov (~> 0.12.0)
30
+ simplecov (~> 0.16.1)
31
31
  term-ansicolor (~> 1.3)
32
- thor (~> 0.19.1)
33
- tins (>= 1.6.0, < 2)
34
- delayed_job (4.1.2)
35
- activesupport (>= 3.0, < 5.1)
36
- diff-lcs (1.2.5)
37
- docile (1.1.5)
38
- fakeredis (0.6.0)
39
- redis (~> 3.2)
40
- globalid (0.3.7)
41
- activesupport (>= 4.1.0)
42
- i18n (0.7.0)
43
- json (1.8.3)
44
- method_source (0.8.2)
45
- minitest (5.9.1)
32
+ thor (>= 0.19.4, < 2.0)
33
+ tins (~> 1.6)
34
+ delayed_job (4.1.9)
35
+ activesupport (>= 3.0, < 6.2)
36
+ diff-lcs (1.4.4)
37
+ docile (1.3.5)
38
+ e2mmap (0.1.0)
39
+ fakeredis (0.7.0)
40
+ redis (>= 3.2, < 5.0)
41
+ globalid (0.4.2)
42
+ activesupport (>= 4.2.0)
43
+ i18n (1.8.9)
44
+ concurrent-ruby (~> 1.0)
45
+ json (2.5.1)
46
+ method_source (1.0.0)
47
+ minitest (5.14.3)
46
48
  mono_logger (1.1.0)
47
- multi_json (1.12.1)
48
- pry (0.10.4)
49
- coderay (~> 1.1.0)
50
- method_source (~> 0.8.1)
51
- slop (~> 3.4)
52
- pry-byebug (3.4.0)
53
- byebug (~> 9.0)
54
- pry (~> 0.10)
55
- rack (1.6.4)
56
- rack-protection (1.5.3)
49
+ multi_json (1.15.0)
50
+ mustermann (1.1.1)
51
+ ruby2_keywords (~> 0.0.1)
52
+ pry (0.13.1)
53
+ coderay (~> 1.1)
54
+ method_source (~> 1.0)
55
+ pry-byebug (3.9.0)
56
+ byebug (~> 11.0)
57
+ pry (~> 0.13.0)
58
+ rack (2.2.3)
59
+ rack-protection (2.1.0)
57
60
  rack
58
- rake (11.3.0)
59
- redis (3.3.1)
60
- redis-namespace (1.5.2)
61
- redis (~> 3.0, >= 3.0.4)
61
+ rake (13.0.3)
62
+ redis (4.2.5)
63
+ redis-namespace (1.8.1)
64
+ redis (>= 3.0.4)
62
65
  redis-semaphore (0.3.1)
63
66
  redis
64
- resque (1.26.0)
67
+ resque (2.0.0)
65
68
  mono_logger (~> 1.0)
66
69
  multi_json (~> 1.0)
67
- redis-namespace (~> 1.3)
70
+ redis-namespace (~> 1.6)
68
71
  sinatra (>= 0.9.2)
69
72
  vegas (~> 0.1.2)
70
- resque_spec (0.17.0)
71
- resque (>= 1.19.0)
73
+ resque_spec (0.18.1)
74
+ resque (>= 1.26.0)
72
75
  rspec-core (>= 3.0.0)
73
76
  rspec-expectations (>= 3.0.0)
74
77
  rspec-mocks (>= 3.0.0)
75
- rspec (3.5.0)
76
- rspec-core (~> 3.5.0)
77
- rspec-expectations (~> 3.5.0)
78
- rspec-mocks (~> 3.5.0)
79
- rspec-core (3.5.4)
80
- rspec-support (~> 3.5.0)
81
- rspec-expectations (3.5.0)
78
+ rspec (3.10.0)
79
+ rspec-core (~> 3.10.0)
80
+ rspec-expectations (~> 3.10.0)
81
+ rspec-mocks (~> 3.10.0)
82
+ rspec-core (3.10.1)
83
+ rspec-support (~> 3.10.0)
84
+ rspec-expectations (3.10.1)
82
85
  diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.5.0)
84
- rspec-mocks (3.5.0)
86
+ rspec-support (~> 3.10.0)
87
+ rspec-mocks (3.10.2)
85
88
  diff-lcs (>= 1.2.0, < 2.0)
86
- rspec-support (~> 3.5.0)
87
- rspec-sidekiq (2.2.0)
88
- rspec (~> 3.0, >= 3.0.0)
89
+ rspec-support (~> 3.10.0)
90
+ rspec-sidekiq (3.1.0)
91
+ rspec-core (~> 3.0, >= 3.0.0)
89
92
  sidekiq (>= 2.4.0)
90
- rspec-support (3.5.0)
91
- sidekiq (4.2.3)
92
- concurrent-ruby (~> 1.0)
93
- connection_pool (~> 2.2, >= 2.2.0)
94
- rack-protection (>= 1.5.0)
95
- redis (~> 3.2, >= 3.2.1)
96
- simplecov (0.12.0)
97
- docile (~> 1.1.0)
93
+ rspec-support (3.10.2)
94
+ ruby2_keywords (0.0.4)
95
+ sidekiq (6.1.3)
96
+ connection_pool (>= 2.2.2)
97
+ rack (~> 2.0)
98
+ redis (>= 4.2.0)
99
+ simplecov (0.16.1)
100
+ docile (~> 1.1)
98
101
  json (>= 1.8, < 3)
99
102
  simplecov-html (~> 0.10.0)
100
- simplecov-html (0.10.0)
101
- sinatra (1.4.7)
102
- rack (~> 1.5)
103
- rack-protection (~> 1.4)
104
- tilt (>= 1.3, < 3)
105
- slop (3.6.0)
106
- statsd-ruby (1.2.1)
107
- term-ansicolor (1.4.0)
103
+ simplecov-html (0.10.2)
104
+ sinatra (2.1.0)
105
+ mustermann (~> 1.0)
106
+ rack (~> 2.2)
107
+ rack-protection (= 2.1.0)
108
+ tilt (~> 2.0)
109
+ statsd-ruby (1.4.0)
110
+ sync (0.5.0)
111
+ term-ansicolor (1.7.1)
108
112
  tins (~> 1.0)
109
- thor (0.19.1)
110
- thread_safe (0.3.5)
111
- tilt (2.0.5)
112
- tins (1.12.0)
113
- tzinfo (1.2.2)
113
+ thor (1.1.0)
114
+ thread_safe (0.3.6)
115
+ thwait (0.2.0)
116
+ e2mmap
117
+ tilt (2.0.10)
118
+ tins (1.28.0)
119
+ sync
120
+ tzinfo (1.2.9)
114
121
  thread_safe (~> 0.1)
115
122
  vegas (0.1.11)
116
123
  rack (>= 1.0.0)
@@ -119,11 +126,11 @@ PLATFORMS
119
126
  ruby
120
127
 
121
128
  DEPENDENCIES
122
- activesupport (~> 4.2.0)
129
+ activesupport (~> 5.2.0)
123
130
  bundler (>= 1.6.0)
124
- coveralls (>= 0.7.0)
131
+ coveralls (>= 0.8.22)
125
132
  delayed_job (~> 4.1.0)
126
- fakeredis (~> 0.6.0)
133
+ fakeredis (~> 0.7.0)
127
134
  pry (>= 0.9.0)
128
135
  pry-byebug (>= 1.3.0)
129
136
  rake (>= 10.3.0)
@@ -135,4 +142,4 @@ DEPENDENCIES
135
142
  taskinator!
136
143
 
137
144
  BUNDLED WITH
138
- 1.13.4
145
+ 2.2.11
data/README.md CHANGED
@@ -4,7 +4,6 @@
4
4
  [![Build Status](https://secure.travis-ci.org/virtualstaticvoid/taskinator.png?branch=master)](http://travis-ci.org/virtualstaticvoid/taskinator)
5
5
  [![Code Climate](https://codeclimate.com/github/virtualstaticvoid/taskinator.png)](https://codeclimate.com/github/virtualstaticvoid/taskinator)
6
6
  [![Coverage Status](https://coveralls.io/repos/virtualstaticvoid/taskinator/badge.png)](https://coveralls.io/r/virtualstaticvoid/taskinator)
7
- [![Dependency Status](https://gemnasium.com/virtualstaticvoid/taskinator.svg)](https://gemnasium.com/virtualstaticvoid/taskinator)
8
7
 
9
8
  A simple orchestration library for running complex processes or workflows in Ruby. Processes are defined using a simple DSL, where the sequences and
10
9
  tasks are defined. Processes can then be queued for execution. Sequences can be synchronous or asynchronous, and the overall process can be monitored
data/lib/taskinator.rb CHANGED
@@ -3,6 +3,7 @@ require 'yaml'
3
3
  require 'securerandom'
4
4
  require 'redis-semaphore'
5
5
  require 'benchmark'
6
+ require 'delegate'
6
7
 
7
8
  require 'taskinator/version'
8
9
 
@@ -199,6 +199,12 @@ module Taskinator
199
199
  end
200
200
 
201
201
  def task_completed(task)
202
+ # deincrement the count of pending sequential tasks
203
+ pending = deincr_pending_tasks
204
+
205
+ Taskinator.statsd_client.count("taskinator.#{definition.name.underscore.parameterize}.pending", pending)
206
+ Taskinator.logger.info("Completed task for process '#{uuid}'. Pending is #{pending}.")
207
+
202
208
  next_task = task.next
203
209
  if next_task
204
210
  next_task.enqueue!
@@ -258,9 +264,6 @@ module Taskinator
258
264
  end
259
265
 
260
266
  def task_completed(task)
261
- # skip if failed
262
- return if failed?
263
-
264
267
  # deincrement the count of pending concurrent tasks
265
268
  pending = deincr_pending_tasks
266
269
 
@@ -1,3 +1,3 @@
1
1
  module Taskinator
2
- VERSION = "0.3.11"
2
+ VERSION = "0.3.16"
3
3
  end
@@ -14,9 +14,9 @@ shared_examples_for "a queue adapter" do |adapter_name, adapter_type|
14
14
  it { expect(subject).to respond_to(:enqueue_create_process) }
15
15
 
16
16
  it "should enqueue a create process" do
17
- expect {
17
+ expect(
18
18
  subject.enqueue_create_process(double('definition', :name => 'definition', :queue => nil), 'xx-xx-xx-xx', :foo => :bar)
19
- }.to_not raise_error(StandardError)
19
+ ).to_not be_nil
20
20
  end
21
21
  end
22
22
 
@@ -24,9 +24,9 @@ shared_examples_for "a queue adapter" do |adapter_name, adapter_type|
24
24
  it { expect(subject).to respond_to(:enqueue_task) }
25
25
 
26
26
  it "should enqueue a task" do
27
- expect {
27
+ expect(
28
28
  subject.enqueue_task(double('task', :uuid => 'xx-xx-xx-xx', :queue => nil))
29
- }.to_not raise_error(StandardError)
29
+ ).to_not be_nil
30
30
  end
31
31
  end
32
32
 
data/spec/spec_helper.rb CHANGED
@@ -60,10 +60,7 @@ RSpec.configure do |config|
60
60
  end
61
61
 
62
62
  config.before(:each, :redis => true) do
63
- Taskinator.redis = { :namespace => 'taskinator:test' }
64
- Taskinator.redis do |conn|
65
- conn.flushdb
66
- end
63
+ Taskinator.redis = { :namespace => "taskinator:test:#{SecureRandom.uuid}" }
67
64
  end
68
65
 
69
66
  config.before(:each, :sidekiq => true) do
@@ -288,6 +288,23 @@ describe Taskinator::Process do
288
288
  subject.task_completed(task1)
289
289
  end
290
290
 
291
+ it "deincrements the pending task count" do
292
+ tasks.each {|t| subject.tasks << t }
293
+ task1 = tasks[0]
294
+ task2 = tasks[1]
295
+
296
+ allow(task2).to receive(:enqueue!)
297
+
298
+ pending_count = tasks.count
299
+ allow(subject).to receive(:deincr_pending_tasks) { pending_count -= 1 }
300
+
301
+ subject.task_completed(task1)
302
+ expect(pending_count).to eq(tasks.count - 1)
303
+
304
+ subject.task_completed(task2)
305
+ expect(pending_count).to eq(tasks.count - 2)
306
+ end
307
+
291
308
  it "completes if no more tasks" do
292
309
  tasks.each {|t| subject.tasks << t }
293
310
  task2 = tasks[1]
@@ -296,6 +313,30 @@ describe Taskinator::Process do
296
313
 
297
314
  subject.task_completed(task2)
298
315
  end
316
+
317
+ it "completes if failed task gets retried" do
318
+ tasks.each {|t| subject.tasks << t }
319
+ task1 = tasks[0]
320
+ task2 = tasks[1]
321
+
322
+ allow(task2).to receive(:enqueue!)
323
+
324
+ expect(subject).to receive(:fail!).and_call_original
325
+ expect(subject).to receive(:complete!).and_call_original
326
+
327
+ subject.task_completed(task1)
328
+ expect(subject.completed?).to_not be
329
+ expect(subject.failed?).to_not be
330
+
331
+ subject.task_failed(task2, StandardError.new)
332
+ expect(subject.completed?).to_not be
333
+ expect(subject.failed?).to be
334
+
335
+ # "retry" the task
336
+ subject.task_completed(task2)
337
+ expect(subject.completed?).to be
338
+ expect(subject.failed?).to_not be
339
+ end
299
340
  end
300
341
 
301
342
  describe "#tasks_completed?" do
@@ -315,6 +356,28 @@ describe Taskinator::Process do
315
356
  end
316
357
  end
317
358
 
359
+ describe "#task_failed" do
360
+ it "fails when tasks fail" do
361
+ tasks.each {|t| subject.tasks << t }
362
+
363
+ error = StandardError.new
364
+
365
+ expect(subject).to receive(:fail!).with(error)
366
+
367
+ subject.task_failed(tasks.first, error)
368
+ end
369
+
370
+ it "doesn't deincement pending task count" do
371
+ tasks.each {|t| subject.tasks << t }
372
+
373
+ expect(subject).to_not receive(:deincr_pending_tasks)
374
+
375
+ error = StandardError.new
376
+
377
+ subject.task_failed(tasks.first, error)
378
+ end
379
+ end
380
+
318
381
  describe "#accept" do
319
382
  it { expect(subject).to be_a(Taskinator::Persistence) }
320
383
 
@@ -422,7 +485,8 @@ describe Taskinator::Process do
422
485
  process = Taskinator::Process.define_concurrent_process_for(definition, Taskinator::CompleteOn::First)
423
486
  tasks.each {|t| process.tasks << t }
424
487
 
425
- allow(process).to receive(:deincr_pending_tasks) { tasks.count - 1 }
488
+ pending_count = tasks.count
489
+ allow(process).to receive(:deincr_pending_tasks) { pending_count -= 1 }
426
490
 
427
491
  expect(process).to receive(:complete!).once.and_call_original
428
492
 
@@ -450,6 +514,82 @@ describe Taskinator::Process do
450
514
  expect(process.completed?).to be(false) unless pending_count < 1
451
515
  end
452
516
  end
517
+
518
+ it "deincrements the pending task count" do
519
+ tasks.each {|t| subject.tasks << t }
520
+ task1 = tasks[0]
521
+ task2 = tasks[1]
522
+
523
+ pending_count = tasks.count
524
+ allow(subject).to receive(:deincr_pending_tasks) { pending_count -= 1 }
525
+
526
+ subject.task_completed(task1)
527
+ expect(pending_count).to eq(tasks.count - 1)
528
+
529
+ subject.task_completed(task2)
530
+ expect(pending_count).to eq(tasks.count - 2)
531
+ end
532
+
533
+ describe "completes if failed task gets retried" do
534
+ it "after first task succeeds" do
535
+ tasks.each {|t| subject.tasks << t }
536
+ task1 = tasks[0]
537
+ task2 = tasks[1]
538
+
539
+ pending_count = tasks.count
540
+ allow(subject).to receive(:deincr_pending_tasks) { pending_count -= 1 }
541
+ allow(task2).to receive(:enqueue!)
542
+
543
+ expect(subject).to receive(:fail!).and_call_original
544
+ expect(subject).to receive(:complete!).and_call_original
545
+
546
+ # first task succeeds
547
+ subject.task_completed(task1)
548
+ expect(pending_count).to eq(tasks.count - 1)
549
+
550
+ # second task fails
551
+ subject.task_failed(task2, StandardError.new)
552
+
553
+ expect(subject.failed?).to be
554
+ expect(pending_count).to eq(tasks.count - 1)
555
+
556
+ # "retry" the task
557
+ subject.task_completed(task2)
558
+
559
+ expect(pending_count).to eq(tasks.count - 2)
560
+ expect(subject.failed?).to_not be
561
+ expect(subject.completed?).to be
562
+ end
563
+
564
+ it "after first task fails" do
565
+ tasks.each {|t| subject.tasks << t }
566
+ task1 = tasks[0]
567
+ task2 = tasks[1]
568
+
569
+ pending_count = tasks.count
570
+ allow(subject).to receive(:deincr_pending_tasks) { pending_count -= 1 }
571
+ allow(task2).to receive(:enqueue!)
572
+
573
+ expect(subject).to receive(:fail!).and_call_original
574
+ expect(subject).to receive(:complete!).and_call_original
575
+
576
+ # first task fails
577
+ subject.task_failed(task2, StandardError.new)
578
+ expect(subject.failed?).to be
579
+ expect(pending_count).to eq(tasks.count)
580
+
581
+ # second task succeeds
582
+ subject.task_completed(task1)
583
+ expect(pending_count).to eq(tasks.count - 1)
584
+
585
+ # "retry" the task
586
+ subject.task_completed(task2)
587
+
588
+ expect(pending_count).to eq(tasks.count - 2)
589
+ expect(subject.failed?).to_not be
590
+ expect(subject.completed?).to be
591
+ end
592
+ end
453
593
  end
454
594
 
455
595
  describe "#task_failed" do
@@ -462,6 +602,16 @@ describe Taskinator::Process do
462
602
 
463
603
  subject.task_failed(tasks.first, error)
464
604
  end
605
+
606
+ it "doesn't deincement pending task count" do
607
+ tasks.each {|t| subject.tasks << t }
608
+
609
+ expect(subject).to_not receive(:deincr_pending_tasks)
610
+
611
+ error = StandardError.new
612
+
613
+ subject.task_failed(tasks.first, error)
614
+ end
465
615
  end
466
616
 
467
617
  describe "#tasks_completed?" do
@@ -18,7 +18,7 @@ describe Taskinator::Queues::SidekiqAdapter, :sidekiq do
18
18
  worker = adapter::CreateProcessWorker
19
19
  definition = MockDefinition.create
20
20
  subject.enqueue_create_process(definition, uuid, :foo => :bar)
21
- expect(worker).to have_enqueued_job(definition.name, uuid, args)
21
+ expect(worker).to have_enqueued_sidekiq_job(definition.name, uuid, args)
22
22
  end
23
23
 
24
24
  it "enqueues to specified queue" do
@@ -38,7 +38,7 @@ describe Taskinator::Queues::SidekiqAdapter, :sidekiq do
38
38
  worker = adapter::ProcessWorker
39
39
  process = double('process', :uuid => uuid, :queue => nil)
40
40
  subject.enqueue_process(process)
41
- expect(worker).to have_enqueued_job(process.uuid)
41
+ expect(worker).to have_enqueued_sidekiq_job(process.uuid)
42
42
  end
43
43
 
44
44
  it "enqueues process to specified queue" do
@@ -57,7 +57,7 @@ describe Taskinator::Queues::SidekiqAdapter, :sidekiq do
57
57
  worker = adapter::TaskWorker
58
58
  task = double('task', :uuid => uuid, :queue => nil)
59
59
  subject.enqueue_task(task)
60
- expect(worker).to have_enqueued_job(task.uuid)
60
+ expect(worker).to have_enqueued_sidekiq_job(task.uuid)
61
61
  end
62
62
 
63
63
  it "enqueues task to specified queue" do
data/taskinator.gemspec CHANGED
@@ -28,5 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_dependency 'json' , '>= 1.8.2'
29
29
  spec.add_dependency 'builder' , '>= 3.2.2'
30
30
  spec.add_dependency 'globalid' , '~> 0.3'
31
- spec.add_dependency 'statsd-ruby' , '~> 1.2.0'
31
+ spec.add_dependency 'statsd-ruby' , '~> 1.4.0'
32
+ spec.add_dependency 'thwait' , '~> 0.2'
33
+
32
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taskinator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.11
4
+ version: 0.3.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Stefano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-01 00:00:00.000000000 Z
11
+ date: 2021-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -114,14 +114,28 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.2.0
117
+ version: 1.4.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 1.2.0
124
+ version: 1.4.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: thwait
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.2'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.2'
125
139
  description: Simple process orchestration
126
140
  email:
127
141
  - virtualstaticvoid@gmail.com
@@ -232,8 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
232
246
  - !ruby/object:Gem::Version
233
247
  version: '0'
234
248
  requirements: []
235
- rubyforge_project:
236
- rubygems_version: 2.5.1
249
+ rubygems_version: 3.1.4
237
250
  signing_key:
238
251
  specification_version: 4
239
252
  summary: A simple orchestration library for running complex processes or workflows