aws-flow 2.2.2 → 2.3.0
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 +8 -8
- data/aws-flow.gemspec +1 -1
- data/lib/aws/decider/activity.rb +1 -0
- data/lib/aws/decider/async_decider.rb +1 -1
- data/lib/aws/decider/options.rb +49 -2
- data/lib/aws/decider/state_machines.rb +2 -2
- data/lib/aws/decider/version.rb +1 -1
- data/lib/aws/decider/worker.rb +2 -1
- data/spec/aws/decider/integration/activity_spec.rb +1 -1
- data/spec/aws/decider/integration/integration_spec.rb +1 -1
- data/spec/aws/decider/integration/options_spec.rb +210 -0
- data/spec/aws/decider/unit/options_spec.rb +16 -0
- data/spec/aws/decider/unit/worker_spec.rb +6 -0
- data/spec/aws/replayer/integration/replayer_spec.rb +1 -1
- data/spec/spec_helper.rb +2 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODBlYWU5MDRjNmJhYzIyYTI4YmNmZTZmNjA1OGRmZGJmMjA3MTEwYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OTc3ZTNiNTEyYTlmY2E5NmVkNzZmNTIyZjAyZjllZDE2NDRhZmVkNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmUzNDVmMjc4NzNlYjcyN2NlODEzZDQ1NWQ4ZDRiNjZlMzIyMzQzYzlhYTli
|
10
|
+
YmYwNWM1M2U3OTJkMmQwZTc3ZWFmNWI2NTIxMDQ0ZDQ4MDE0NmMzOTI2MDVi
|
11
|
+
YzJjYTYwMTE2NzFkMTJkNGNkNDZhZGM3MTdiMWE1YmMyNWEzZmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MGE1OWYwZGJjYjEyNTljN2E4ZjFlMTFhZWI5YmU5NzJlOWRjOGViYTVmZjIy
|
14
|
+
OTMzNmY3YzIwNmE2YzZhZjBkNDZjNDgyMjcyZTBmOGUyOTM2MmFiYzc3YmNi
|
15
|
+
M2E5MDQ5MDI4Mjc1NWFlMTFjNzNjMDk4ZjkxNDc0YmVmMTg5ZjA=
|
data/aws-flow.gemspec
CHANGED
@@ -13,5 +13,5 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.files = `git ls-files`.split("\n").reject {|file| file =~ /aws-flow-core/}
|
14
14
|
s.require_paths << "lib/aws/"
|
15
15
|
s.required_ruby_version = ">= 1.9.1"
|
16
|
-
s.add_dependency "aws-sdk-v1", "~> 1", ">= 1.
|
16
|
+
s.add_dependency "aws-sdk-v1", "~> 1", ">= 1.60.1"
|
17
17
|
end
|
data/lib/aws/decider/activity.rb
CHANGED
@@ -433,6 +433,7 @@ module AWS
|
|
433
433
|
# :default_task_schedule_to_close_timeout => "20",
|
434
434
|
# :default_task_schedule_to_start_timeout => "20",
|
435
435
|
# :default_task_start_to_close_timeout => "20",
|
436
|
+
# :default_task_priority => "0",
|
436
437
|
# :version => "1",
|
437
438
|
# :prefix_name => "ExampleActivity"
|
438
439
|
# }
|
@@ -313,7 +313,7 @@ module AWS
|
|
313
313
|
}
|
314
314
|
|
315
315
|
task_list = continue_as_new_options.task_list ? {:task_list => {:name => continue_as_new_options.task_list}} : {}
|
316
|
-
to_add = continue_as_new_options.get_options([:execution_start_to_close_timeout, :task_start_to_close_timeout, :child_policy, :tag_list, :workflow_type_version, :input], task_list)
|
316
|
+
to_add = continue_as_new_options.get_options([:execution_start_to_close_timeout, :task_start_to_close_timeout, :task_priority, :child_policy, :tag_list, :workflow_type_version, :input], task_list)
|
317
317
|
result[:continue_as_new_workflow_execution_decision_attributes] = to_add
|
318
318
|
CompleteWorkflowStateMachine.new(decision_id, result)
|
319
319
|
end
|
data/lib/aws/decider/options.rb
CHANGED
@@ -357,6 +357,9 @@ module AWS
|
|
357
357
|
# array (no tags).
|
358
358
|
def tag_list; []; end
|
359
359
|
|
360
|
+
# The default task priority.The default value is '0'
|
361
|
+
def default_task_priority; 0; end
|
362
|
+
|
360
363
|
def default_task_list; FlowConstants.use_worker_task_list; end
|
361
364
|
end
|
362
365
|
|
@@ -439,6 +442,20 @@ module AWS
|
|
439
442
|
# value can be used to specify the duration in seconds while `NONE` can be
|
440
443
|
# used to specify unlimited duration. The default is `30`.
|
441
444
|
#
|
445
|
+
# @!attribute task_priority
|
446
|
+
# The optional task priority if set, specifies the priority for the
|
447
|
+
# decision tasks for a workflow execution. This overrides the
|
448
|
+
# defaultTaskPriority specified when registering the WorkflowType. The
|
449
|
+
# valid values are Integers between Integer.MAX_VALUE to
|
450
|
+
# Integer.MIN_VALUE, i.e. between 2147483647 and -2147483648 for 32-bit
|
451
|
+
# integer. An integer value can be used to specify the priority with
|
452
|
+
# which a workflow must be started.
|
453
|
+
#
|
454
|
+
# Note: task_priority for a workflow must be specified either as a
|
455
|
+
# default for the WorkflowType or through this field. If neither this
|
456
|
+
# field is set nor a default_task_priority is specified at registration
|
457
|
+
# time then it will be assumed nil.
|
458
|
+
#
|
442
459
|
# @!attribute version
|
443
460
|
# A string that represents the version of the workflow. This can be any
|
444
461
|
# alphanumeric string. If you update any of the other options, you must
|
@@ -461,6 +478,7 @@ module AWS
|
|
461
478
|
:workflow_id,
|
462
479
|
:execution_start_to_close_timeout,
|
463
480
|
:task_start_to_close_timeout,
|
481
|
+
:task_priority,
|
464
482
|
:task_list,
|
465
483
|
:execution_method
|
466
484
|
)
|
@@ -490,6 +508,7 @@ module AWS
|
|
490
508
|
:default_task_start_to_close_timeout,
|
491
509
|
:default_execution_start_to_close_timeout,
|
492
510
|
:default_task_list,
|
511
|
+
:default_task_priority,
|
493
512
|
:default_child_policy
|
494
513
|
]
|
495
514
|
end
|
@@ -499,7 +518,8 @@ module AWS
|
|
499
518
|
properties(
|
500
519
|
:default_task_start_to_close_timeout,
|
501
520
|
:default_execution_start_to_close_timeout,
|
502
|
-
:default_task_list
|
521
|
+
:default_task_list,
|
522
|
+
:default_task_priority
|
503
523
|
)
|
504
524
|
|
505
525
|
property(:default_child_policy, [lambda(&:to_s), lambda(&:upcase)])
|
@@ -582,6 +602,17 @@ module AWS
|
|
582
602
|
# `FlowConstants.use_worker_task_list` will be used, which causes the
|
583
603
|
# activities to use the task list specified for the activity worker.
|
584
604
|
def default_task_list; FlowConstants.use_worker_task_list; end
|
605
|
+
|
606
|
+
# The optional default task priority, specified when registering the activity type,
|
607
|
+
# for tasks of this activity type. This default can be overridden when scheduling
|
608
|
+
# a task through - the ScheduleActivityTask Decision.
|
609
|
+
# The valid values are Integer number(Integer.MAX_VALUE to Integer.MIN_VALUE),
|
610
|
+
# (2147483647 to -2147483648) for 32-bit integer.
|
611
|
+
# An integer value can be used to specify the priority with which an activity must
|
612
|
+
# be executed.
|
613
|
+
def default_task_priority; 0; end
|
614
|
+
|
615
|
+
def default_task_list; FlowConstants.use_worker_task_list; end
|
585
616
|
end
|
586
617
|
|
587
618
|
# Options to use on an activity or decider. The following options are
|
@@ -612,6 +643,13 @@ module AWS
|
|
612
643
|
# decision. You can override this default when scheduling a task through
|
613
644
|
# the `ScheduleActivityTask` decision.
|
614
645
|
#
|
646
|
+
# @!attribute default_task_priority
|
647
|
+
# The optional default task priority specified for this activity type at
|
648
|
+
# registration. This default task priority is used if a task priority is not
|
649
|
+
# provided when a task is scheduled through the `ScheduleActivityTask`
|
650
|
+
# decision. You can override this default when scheduling a task through
|
651
|
+
# the `ScheduleActivityTask` decision.
|
652
|
+
#
|
615
653
|
# @!attribute default_task_schedule_to_close_timeout
|
616
654
|
# The optional default maximum duration, specified when registering the
|
617
655
|
# activity type, for tasks of this activity type. You can override this
|
@@ -642,6 +680,7 @@ module AWS
|
|
642
680
|
:schedule_to_close_timeout,
|
643
681
|
:schedule_to_start_timeout,
|
644
682
|
:start_to_close_timeout,
|
683
|
+
:task_priority,
|
645
684
|
:version,
|
646
685
|
:input
|
647
686
|
)
|
@@ -714,6 +753,12 @@ module AWS
|
|
714
753
|
# provided when a task is scheduled through the ScheduleActivityTask
|
715
754
|
# decision.
|
716
755
|
#
|
756
|
+
# @option default_options [Array] :task_priority
|
757
|
+
# The optional default task priority specified for this activity type at
|
758
|
+
# registration. This default task priority is used if a task priority is not
|
759
|
+
# provided when a task is scheduled through the ScheduleActivityTask
|
760
|
+
# decision.
|
761
|
+
#
|
717
762
|
# You can override this default when scheduling a task through the
|
718
763
|
# `ScheduleActivityTask` decision.
|
719
764
|
#
|
@@ -772,7 +817,8 @@ module AWS
|
|
772
817
|
:default_task_schedule_to_close_timeout,
|
773
818
|
:default_task_schedule_to_start_timeout,
|
774
819
|
:default_task_start_to_close_timeout,
|
775
|
-
:default_task_list
|
820
|
+
:default_task_list,
|
821
|
+
:default_task_priority
|
776
822
|
]
|
777
823
|
end
|
778
824
|
end
|
@@ -784,6 +830,7 @@ module AWS
|
|
784
830
|
:default_task_schedule_to_close_timeout,
|
785
831
|
:default_task_schedule_to_start_timeout,
|
786
832
|
:default_task_start_to_close_timeout,
|
833
|
+
:default_task_priority
|
787
834
|
)
|
788
835
|
|
789
836
|
default_classes << ActivityRegistrationDefaults.new
|
@@ -195,7 +195,7 @@ module AWS
|
|
195
195
|
}
|
196
196
|
}
|
197
197
|
task_list = options.task_list ? {:task_list => {:name => options.task_list}} : {}
|
198
|
-
to_add = options.get_options([:heartbeat_timeout, :schedule_to_close_timeout, :schedule_to_start_timeout, :start_to_close_timeout, :input], task_list)
|
198
|
+
to_add = options.get_options([:heartbeat_timeout, :schedule_to_close_timeout, :task_priority, :schedule_to_start_timeout, :start_to_close_timeout, :input], task_list)
|
199
199
|
result[attribute_type].merge!(to_add)
|
200
200
|
result
|
201
201
|
end
|
@@ -336,7 +336,7 @@ module AWS
|
|
336
336
|
}
|
337
337
|
result[:start_child_workflow_execution_decision_attributes].delete(:task_list) if options.task_list.nil?
|
338
338
|
#TODO Figure out what control is
|
339
|
-
to_add = options.get_options([:execution_start_to_close_timeout, :task_start_to_close_timeout, :child_policy, :tag_list, :input])
|
339
|
+
to_add = options.get_options([:execution_start_to_close_timeout, :task_start_to_close_timeout, :task_priority, :child_policy, :tag_list, :input])
|
340
340
|
result[attribute_name].merge!(to_add)
|
341
341
|
result
|
342
342
|
end
|
data/lib/aws/decider/version.rb
CHANGED
data/lib/aws/decider/worker.rb
CHANGED
@@ -166,7 +166,8 @@ module AWS
|
|
166
166
|
[
|
167
167
|
:default_task_start_to_close_timeout,
|
168
168
|
:default_execution_start_to_close_timeout,
|
169
|
-
:default_child_policy
|
169
|
+
:default_child_policy,
|
170
|
+
:default_task_priority
|
170
171
|
], {
|
171
172
|
:domain => @domain.name,
|
172
173
|
:name => workflow_type.name,
|
@@ -1343,7 +1343,7 @@ describe "RubyFlowDecider" do
|
|
1343
1343
|
|
1344
1344
|
workflow_execution = parent_client.start_execution
|
1345
1345
|
wait_for_execution(workflow_execution)
|
1346
|
-
|
1346
|
+
|
1347
1347
|
events = workflow_execution.events.map(&:event_type)
|
1348
1348
|
workflow_execution.events.to_a.last.attributes.result.should_not =~ /secret_access_key/
|
1349
1349
|
events.should include("ChildWorkflowExecutionStarted", "ChildWorkflowExecutionCompleted", "WorkflowExecutionCompleted")
|
@@ -0,0 +1,210 @@
|
|
1
|
+
require_relative 'setup'
|
2
|
+
|
3
|
+
describe "task_priority" do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
@swf, @domain = setup_swf
|
7
|
+
end
|
8
|
+
|
9
|
+
context "activities and workflows" do
|
10
|
+
|
11
|
+
before(:all) do
|
12
|
+
|
13
|
+
class ActivityForTaskPriority
|
14
|
+
extend AWS::Flow::Activities
|
15
|
+
activity :run_1 do
|
16
|
+
{
|
17
|
+
version: "1.0",
|
18
|
+
default_task_priority: 20
|
19
|
+
}
|
20
|
+
end
|
21
|
+
activity :run_2 do
|
22
|
+
{
|
23
|
+
version: "1.0"
|
24
|
+
}
|
25
|
+
end
|
26
|
+
def run_1; end
|
27
|
+
end
|
28
|
+
|
29
|
+
class WorkflowForTaskPriority
|
30
|
+
extend AWS::Flow::Workflows
|
31
|
+
workflow :start do
|
32
|
+
{
|
33
|
+
version: "1.0",
|
34
|
+
default_execution_start_to_close_timeout: 300,
|
35
|
+
default_task_priority: "10",
|
36
|
+
}
|
37
|
+
end
|
38
|
+
activity_client(:activity) { { :from_class => "ActivityForTaskPriority"} }
|
39
|
+
def start
|
40
|
+
activity.run_1
|
41
|
+
activity.run_2
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
it "ensures that default_task_priority values are assigned when workflow is started and when activity is scheduled" do
|
48
|
+
task_list = "activity_task_list1"
|
49
|
+
|
50
|
+
worker = WorkflowWorker.new(@domain.client, @domain, task_list, WorkflowForTaskPriority)
|
51
|
+
activity_worker = ActivityWorker.new(@domain.client, @domain, task_list, ActivityForTaskPriority)
|
52
|
+
worker.register
|
53
|
+
activity_worker.register
|
54
|
+
|
55
|
+
client = AWS::Flow::workflow_client(@domain.client, @domain) { {from_class: "WorkflowForTaskPriority"} }
|
56
|
+
execution = client.start_execution
|
57
|
+
|
58
|
+
worker.run_once
|
59
|
+
activity_worker.run_once
|
60
|
+
worker.run_once
|
61
|
+
activity_worker.run_once
|
62
|
+
worker.run_once
|
63
|
+
wait_for_execution(execution)
|
64
|
+
|
65
|
+
event = execution.events.select { |x| x.event_type =~ /ActivityTaskScheduled/ }
|
66
|
+
event.first.attributes[:task_priority].should == "20"
|
67
|
+
event.last.attributes[:task_priority].should == "0"
|
68
|
+
events = execution.events.select { |x| x.event_type =~ /DecisionTaskScheduled/ }
|
69
|
+
events.first.attributes[:taskPriority].should == "10"
|
70
|
+
end
|
71
|
+
|
72
|
+
it "ensures that overriden values of task priority are assigned when workflow is started and when activity is scheduled" do
|
73
|
+
task_list = "activity_task_list1"
|
74
|
+
class WorkflowForTaskPriority
|
75
|
+
def start
|
76
|
+
activity.run_1 { { task_priority: "200" } }
|
77
|
+
end
|
78
|
+
end
|
79
|
+
worker = WorkflowWorker.new(@domain.client, @domain, task_list, WorkflowForTaskPriority)
|
80
|
+
activity_worker = ActivityWorker.new(@domain.client, @domain, task_list, ActivityForTaskPriority)
|
81
|
+
worker.register
|
82
|
+
activity_worker.register
|
83
|
+
|
84
|
+
client = AWS::Flow::workflow_client(@domain.client, @domain) { {from_class: "WorkflowForTaskPriority"} }
|
85
|
+
execution = client.start_execution { { task_priority: "100" } }
|
86
|
+
|
87
|
+
worker.run_once
|
88
|
+
activity_worker.run_once
|
89
|
+
worker.run_once
|
90
|
+
|
91
|
+
wait_for_execution(execution)
|
92
|
+
|
93
|
+
event = execution.events.select { |x| x.event_type =~ /ActivityTaskScheduled/ }
|
94
|
+
event.first.attributes[:task_priority].should == "200"
|
95
|
+
events = execution.events.select { |x| x.event_type =~ /DecisionTaskScheduled/ }
|
96
|
+
events.first.attributes[:taskPriority].should == "100"
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
context "continue_as_new" do
|
102
|
+
before (:all) do
|
103
|
+
class ContinueAsNewPriorityWorkflow
|
104
|
+
extend AWS::Flow::Workflows
|
105
|
+
workflow :entry_point do
|
106
|
+
{
|
107
|
+
version: "1.0",
|
108
|
+
default_task_priority: 50,
|
109
|
+
default_execution_start_to_close_timeout: 60
|
110
|
+
}
|
111
|
+
end
|
112
|
+
def entry_point
|
113
|
+
continue_as_new
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
it "makes sure that continue_as_new takes parent's task priority" do
|
120
|
+
worker = AWS::Flow::WorkflowWorker.new(@domain.client, @domain, "continue_as_new", ContinueAsNewPriorityWorkflow)
|
121
|
+
worker.register
|
122
|
+
client = AWS::Flow::workflow_client(@domain.client, @domain) { { from_class: "ContinueAsNewPriorityWorkflow" } }
|
123
|
+
|
124
|
+
execution = client.entry_point { { task_list: "continue_as_new" } }
|
125
|
+
worker.run_once
|
126
|
+
sleep 1
|
127
|
+
wait_for_execution(execution)
|
128
|
+
execution.events.map(&:event_type).last.should == "WorkflowExecutionContinuedAsNew"
|
129
|
+
execution.status.should == :continued_as_new
|
130
|
+
events = execution.events.select { |x| x.event_type == "WorkflowExecutionContinuedAsNew" }
|
131
|
+
events.first.attributes.task_priority.should == "50"
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
it "makes sure continue_as_new overrides parent's task priority" do
|
136
|
+
class ContinueAsNewPriorityWorkflow
|
137
|
+
def entry_point
|
138
|
+
continue_as_new { { task_priority: 100 } }
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
worker = AWS::Flow::WorkflowWorker.new(@domain.client, @domain, "continue_as_new_1", ContinueAsNewPriorityWorkflow)
|
143
|
+
worker.register
|
144
|
+
client = AWS::Flow::workflow_client(@domain.client, @domain) { { from_class: "ContinueAsNewPriorityWorkflow" } }
|
145
|
+
|
146
|
+
execution = client.entry_point { { task_list: "continue_as_new_1" } }
|
147
|
+
worker.run_once
|
148
|
+
sleep 1
|
149
|
+
wait_for_execution(execution)
|
150
|
+
execution.events.map(&:event_type).last.should == "WorkflowExecutionContinuedAsNew"
|
151
|
+
execution.status.should == :continued_as_new
|
152
|
+
events = execution.events.select { |x| x.event_type == "WorkflowExecutionContinuedAsNew" }
|
153
|
+
events.first.attributes.task_priority.should == "100"
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
context "child_workflows" do
|
158
|
+
|
159
|
+
it "test whether task priority is overridden for child workflow" do
|
160
|
+
class ChildWorkflowsTestChildWorkflow
|
161
|
+
extend AWS::Flow::Workflows
|
162
|
+
workflow :child do
|
163
|
+
{
|
164
|
+
version: "1.0",
|
165
|
+
default_task_priority: 100,
|
166
|
+
default_execution_start_to_close_timeout: 600,
|
167
|
+
default_task_start_to_close_timeout:10,
|
168
|
+
}
|
169
|
+
end
|
170
|
+
def child; sleep 1; end
|
171
|
+
end
|
172
|
+
|
173
|
+
class ChildWorkflowsTestParentWorkflow
|
174
|
+
extend AWS::Flow::Workflows
|
175
|
+
workflow :parent do
|
176
|
+
{
|
177
|
+
version: "1.0",
|
178
|
+
default_execution_start_to_close_timeout: 600,
|
179
|
+
default_task_list: "test"
|
180
|
+
}
|
181
|
+
end
|
182
|
+
def parent
|
183
|
+
domain = get_test_domain
|
184
|
+
client = AWS::Flow::workflow_client(domain.client, domain) { { from_class: "ChildWorkflowsTestChildWorkflow", task_list: "test2" } }
|
185
|
+
client.send_async(:start_execution)
|
186
|
+
client.send_async(:start_execution)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
parent_client = AWS::Flow::workflow_client(@domain.client, @domain) { { from_class: "ChildWorkflowsTestParentWorkflow" } }
|
191
|
+
@child_worker = WorkflowWorker.new(@domain.client, @domain, "test2", ChildWorkflowsTestChildWorkflow)
|
192
|
+
@parent_worker = WorkflowWorker.new(@domain.client, @domain, "test", ChildWorkflowsTestParentWorkflow)
|
193
|
+
|
194
|
+
@forking_executor = ForkingExecutor.new(:max_workers => 3)
|
195
|
+
@forking_executor.execute { @parent_worker.start }
|
196
|
+
@forking_executor.execute { @child_worker.start }
|
197
|
+
@forking_executor.execute { @child_worker.start }
|
198
|
+
sleep 2
|
199
|
+
|
200
|
+
workflow_execution = parent_client.start_execution
|
201
|
+
wait_for_execution(workflow_execution)
|
202
|
+
|
203
|
+
events = workflow_execution.events.map(&:event_type)
|
204
|
+
events.should include("ChildWorkflowExecutionStarted", "ChildWorkflowExecutionCompleted", "WorkflowExecutionCompleted")
|
205
|
+
@forking_executor.shutdown 0
|
206
|
+
end
|
207
|
+
|
208
|
+
end
|
209
|
+
|
210
|
+
end
|
@@ -10,6 +10,7 @@ describe AWS::Flow::ActivityRegistrationOptions do
|
|
10
10
|
default_task_schedule_to_close_timeout: "NONE",
|
11
11
|
default_task_schedule_to_start_timeout: "NONE",
|
12
12
|
default_task_start_to_close_timeout: "NONE",
|
13
|
+
default_task_priority: "0",
|
13
14
|
default_task_list: "USE_WORKER_TASK_LIST"
|
14
15
|
}
|
15
16
|
end
|
@@ -20,6 +21,7 @@ describe AWS::Flow::ActivityRegistrationOptions do
|
|
20
21
|
default_task_schedule_to_close_timeout: 50,
|
21
22
|
default_task_start_to_close_timeout: 30,
|
22
23
|
default_task_heartbeat_timeout: 5,
|
24
|
+
default_task_priority: 100,
|
23
25
|
default_task_list: "test_tasklist",
|
24
26
|
})
|
25
27
|
options.get_registration_options.should == {
|
@@ -27,6 +29,7 @@ describe AWS::Flow::ActivityRegistrationOptions do
|
|
27
29
|
default_task_schedule_to_close_timeout: "50",
|
28
30
|
default_task_schedule_to_start_timeout: "20",
|
29
31
|
default_task_start_to_close_timeout: "30",
|
32
|
+
default_task_priority: "100",
|
30
33
|
default_task_list: "test_tasklist"
|
31
34
|
}
|
32
35
|
end
|
@@ -42,6 +45,7 @@ describe AWS::Flow::ActivityRegistrationOptions do
|
|
42
45
|
default_task_schedule_to_close_timeout: "NONE",
|
43
46
|
default_task_schedule_to_start_timeout: "NONE",
|
44
47
|
default_task_start_to_close_timeout: "NONE",
|
48
|
+
default_task_priority: "0",
|
45
49
|
default_task_list: "USE_WORKER_TASK_LIST",
|
46
50
|
data_converter: FlowConstants.default_data_converter
|
47
51
|
}
|
@@ -60,6 +64,7 @@ describe AWS::Flow::ActivityRegistrationOptions do
|
|
60
64
|
task_list: "test_tasklist",
|
61
65
|
version: "1.0",
|
62
66
|
prefix_name: "FooActivity",
|
67
|
+
task_priority: 100,
|
63
68
|
manual_completion: true,
|
64
69
|
heartbeat_timeout: 10
|
65
70
|
})
|
@@ -71,6 +76,8 @@ describe AWS::Flow::ActivityRegistrationOptions do
|
|
71
76
|
default_task_start_to_close_timeout: "30",
|
72
77
|
default_task_list: "USE_WORKER_TASK_LIST",
|
73
78
|
task_list: "test_tasklist",
|
79
|
+
default_task_priority: "0",
|
80
|
+
task_priority: "100",
|
74
81
|
version: "1.0",
|
75
82
|
prefix_name: "FooActivity",
|
76
83
|
manual_completion: true,
|
@@ -97,6 +104,7 @@ describe AWS::Flow::WorkflowRegistrationOptions do
|
|
97
104
|
options.get_registration_options.should == {
|
98
105
|
default_task_start_to_close_timeout: "30",
|
99
106
|
default_child_policy: "TERMINATE",
|
107
|
+
default_task_priority: "0",
|
100
108
|
default_task_list: "USE_WORKER_TASK_LIST"
|
101
109
|
}
|
102
110
|
end
|
@@ -106,12 +114,14 @@ describe AWS::Flow::WorkflowRegistrationOptions do
|
|
106
114
|
default_task_schedule_to_close_timeout: 30,
|
107
115
|
default_execution_start_to_close_timeout: 600,
|
108
116
|
default_child_policy: "ABANDON",
|
117
|
+
default_task_priority: "100",
|
109
118
|
default_task_list: "task_list"
|
110
119
|
})
|
111
120
|
options.get_registration_options.should == {
|
112
121
|
default_task_start_to_close_timeout: "30",
|
113
122
|
default_execution_start_to_close_timeout: "600",
|
114
123
|
default_child_policy: "ABANDON",
|
124
|
+
default_task_priority: "100",
|
115
125
|
default_task_list: "task_list"
|
116
126
|
}
|
117
127
|
end
|
@@ -127,6 +137,7 @@ describe AWS::Flow::WorkflowRegistrationOptions do
|
|
127
137
|
default_task_start_to_close_timeout: "30",
|
128
138
|
default_child_policy: "TERMINATE",
|
129
139
|
default_task_list: "USE_WORKER_TASK_LIST",
|
140
|
+
default_task_priority: "0",
|
130
141
|
tag_list: [],
|
131
142
|
data_converter: FlowConstants.default_data_converter
|
132
143
|
}
|
@@ -153,6 +164,7 @@ describe AWS::Flow::WorkflowRegistrationOptions do
|
|
153
164
|
default_child_policy: "TERMINATE",
|
154
165
|
default_task_list: "USE_WORKER_TASK_LIST",
|
155
166
|
task_list: "test_tasklist",
|
167
|
+
default_task_priority: "0",
|
156
168
|
version: "1.0",
|
157
169
|
prefix_name: "FooActivity",
|
158
170
|
data_converter: FlowConstants.default_data_converter,
|
@@ -189,6 +201,7 @@ describe AWS::Flow::ActivityOptions do
|
|
189
201
|
task_list: "test_tasklist",
|
190
202
|
version: "1.0",
|
191
203
|
prefix_name: "FooActivity",
|
204
|
+
task_priority: 100,
|
192
205
|
manual_completion: true,
|
193
206
|
heartbeat_timeout: 10
|
194
207
|
})
|
@@ -198,6 +211,7 @@ describe AWS::Flow::ActivityOptions do
|
|
198
211
|
version: "1.0",
|
199
212
|
prefix_name: "FooActivity",
|
200
213
|
manual_completion: true,
|
214
|
+
task_priority: "100",
|
201
215
|
heartbeat_timeout: "10",
|
202
216
|
data_converter: FlowConstants.default_data_converter,
|
203
217
|
}
|
@@ -263,6 +277,7 @@ describe AWS::Flow::WorkflowRegistrationDefaults do
|
|
263
277
|
defaults.default_child_policy.should == "TERMINATE"
|
264
278
|
defaults.tag_list.should == []
|
265
279
|
defaults.default_task_list.should == AWS::Flow::FlowConstants.use_worker_task_list
|
280
|
+
defaults.default_task_priority == "0"
|
266
281
|
end
|
267
282
|
|
268
283
|
end
|
@@ -280,6 +295,7 @@ describe AWS::Flow::ActivityRegistrationDefaults do
|
|
280
295
|
defaults.default_task_schedule_to_close_timeout.should == Float::INFINITY
|
281
296
|
defaults.default_task_start_to_close_timeout.should == Float::INFINITY
|
282
297
|
defaults.default_task_heartbeat_timeout.should == Float::INFINITY
|
298
|
+
defaults.default_task_priority == "0"
|
283
299
|
defaults.default_task_list.should == AWS::Flow::FlowConstants.use_worker_task_list
|
284
300
|
end
|
285
301
|
|
@@ -81,6 +81,7 @@ describe WorkflowWorker do
|
|
81
81
|
workflow_options = {
|
82
82
|
default_task_start_to_close_timeout: "30",
|
83
83
|
default_child_policy: "TERMINATE",
|
84
|
+
default_task_priority: "0",
|
84
85
|
domain: "UnitTestDomain",
|
85
86
|
name: "DefaultTasklistTestWorkflow.workflow",
|
86
87
|
version: "1.0",
|
@@ -91,6 +92,7 @@ describe WorkflowWorker do
|
|
91
92
|
workflow2_options = {
|
92
93
|
default_task_start_to_close_timeout: "30",
|
93
94
|
default_child_policy: "TERMINATE",
|
95
|
+
default_task_priority: "0",
|
94
96
|
domain: "UnitTestDomain",
|
95
97
|
name: "DefaultTasklistTestWorkflow.workflow2",
|
96
98
|
version: "1.0",
|
@@ -100,6 +102,7 @@ describe WorkflowWorker do
|
|
100
102
|
}
|
101
103
|
workflow3_options = {
|
102
104
|
default_task_start_to_close_timeout: "30",
|
105
|
+
default_task_priority: "0",
|
103
106
|
default_child_policy: "TERMINATE",
|
104
107
|
domain: "UnitTestDomain",
|
105
108
|
name: "DefaultTasklistTestWorkflow.workflow3",
|
@@ -207,6 +210,7 @@ describe ActivityWorker do
|
|
207
210
|
default_task_schedule_to_close_timeout: "NONE",
|
208
211
|
default_task_schedule_to_start_timeout: "NONE",
|
209
212
|
default_task_start_to_close_timeout: "NONE",
|
213
|
+
default_task_priority: "0",
|
210
214
|
default_task_list: {
|
211
215
|
name: "task_list"
|
212
216
|
}
|
@@ -220,6 +224,7 @@ describe ActivityWorker do
|
|
220
224
|
default_task_schedule_to_close_timeout: "NONE",
|
221
225
|
default_task_schedule_to_start_timeout: "NONE",
|
222
226
|
default_task_start_to_close_timeout: "NONE",
|
227
|
+
default_task_priority: "0",
|
223
228
|
default_task_list: {
|
224
229
|
name: "my_own_task_list"
|
225
230
|
}
|
@@ -233,6 +238,7 @@ describe ActivityWorker do
|
|
233
238
|
default_task_schedule_to_close_timeout: "NONE",
|
234
239
|
default_task_schedule_to_start_timeout: "NONE",
|
235
240
|
default_task_start_to_close_timeout: "NONE",
|
241
|
+
default_task_priority: "0",
|
236
242
|
default_task_list: {
|
237
243
|
name: "task_list"
|
238
244
|
}
|
data/spec/spec_helper.rb
CHANGED
@@ -106,7 +106,8 @@ module Test
|
|
106
106
|
sleep sleep_time until [
|
107
107
|
"WorkflowExecutionCompleted",
|
108
108
|
"WorkflowExecutionTimedOut",
|
109
|
-
"WorkflowExecutionFailed"
|
109
|
+
"WorkflowExecutionFailed",
|
110
|
+
"WorkflowExecutionContinuedAsNew"
|
110
111
|
].include? execution.events.to_a.last.event_type
|
111
112
|
end
|
112
113
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-flow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Steger, Paritosh Mohan, Jacques Thomas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-v1
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '1'
|
20
20
|
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: 1.60.1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '1'
|
30
30
|
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: 1.60.1
|
33
33
|
description: Library to provide the AWS Flow Framework for Ruby
|
34
34
|
email: ''
|
35
35
|
executables:
|
@@ -83,6 +83,7 @@ files:
|
|
83
83
|
- lib/aws/runner.rb
|
84
84
|
- spec/aws/decider/integration/activity_spec.rb
|
85
85
|
- spec/aws/decider/integration/integration_spec.rb
|
86
|
+
- spec/aws/decider/integration/options_spec.rb
|
86
87
|
- spec/aws/decider/integration/setup.rb
|
87
88
|
- spec/aws/decider/unit/activity_spec.rb
|
88
89
|
- spec/aws/decider/unit/async_retrying_executor_spec.rb
|