Skip to content

Commit 4b03f07

Browse files
authored
Restructure workflows for replication simulation (#6936)
1 parent 219c49f commit 4b03f07

File tree

5 files changed

+32
-21
lines changed

5 files changed

+32
-21
lines changed

simulation/replication/testdata/replication_simulation_activeactive.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ domains:
2121
operations:
2222
- op: start_workflow
2323
at: 0s
24-
workflowType: test-workflow
24+
workflowType: timer-activity-loop-workflow
2525
workflowID: wf1
2626
cluster: cluster0
2727
domain: test-domain-aa

simulation/replication/testdata/replication_simulation_default.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ domains:
2020
operations:
2121
- op: start_workflow
2222
at: 0s
23-
workflowType: test-workflow
23+
workflowType: timer-activity-loop-workflow
2424
workflowID: wf1
2525
cluster: cluster0
2626
domain: test-domain

simulation/replication/worker/cmd/main.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import (
4747

4848
"github.com/uber/cadence/common"
4949
simTypes "github.com/uber/cadence/simulation/replication/types"
50+
"github.com/uber/cadence/simulation/replication/workflows"
5051
)
5152

5253
var (
@@ -142,11 +143,11 @@ func main() {
142143
workerOptions,
143144
)
144145

145-
for name, wf := range workflows {
146+
for name, wf := range workflows.Workflows {
146147
w.RegisterWorkflowWithOptions(wf, workflow.RegisterOptions{Name: name})
147148
}
148149

149-
for name, act := range activities {
150+
for name, act := range workflows.Activities {
150151
w.RegisterActivityWithOptions(act, activity.RegisterOptions{Name: name})
151152
}
152153

simulation/replication/worker/cmd/workflow.go renamed to simulation/replication/workflows/timer_activity_loop/workflow.go

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1919
// THE SOFTWARE.
2020

21-
package main
21+
package timeractivityloop
2222

2323
import (
2424
"context"
@@ -31,33 +31,28 @@ import (
3131
"github.com/uber/cadence/simulation/replication/types"
3232
)
3333

34-
var (
35-
workflows = map[string]any{"test-workflow": TestWorkflow}
36-
activities = map[string]any{"test-activity": TestActivity}
37-
)
38-
39-
func TestWorkflow(ctx workflow.Context, input types.WorkflowInput) (types.WorkflowOutput, error) {
34+
func Workflow(ctx workflow.Context, input types.WorkflowInput) (types.WorkflowOutput, error) {
4035
logger := workflow.GetLogger(ctx)
41-
logger.Sugar().Infof("testWorkflow started with input: %+v", input)
36+
logger.Sugar().Infof("timer-activity-loop-workflow started with input: %+v", input)
4237

4338
endTime := workflow.Now(ctx).Add(input.Duration)
4439
count := 0
4540
for {
46-
logger.Sugar().Infof("testWorkflow iteration %d", count)
41+
logger.Sugar().Infof("timer-activity-loop-workflow iteration %d", count)
4742
selector := workflow.NewSelector(ctx)
4843
activityFuture := workflow.ExecuteActivity(workflow.WithActivityOptions(ctx, workflow.ActivityOptions{
4944
TaskList: types.TasklistName,
5045
ScheduleToStartTimeout: 10 * time.Second,
5146
StartToCloseTimeout: 10 * time.Second,
52-
}), TestActivity, "World")
47+
}), FormatStringActivity, "World")
5348
selector.AddFuture(activityFuture, func(f workflow.Future) {
54-
logger.Info("testWorkflow completed activity")
49+
logger.Info("timer-activity-loop-workflow completed activity")
5550
})
5651

5752
// use timer future to send notification email if processing takes too long
5853
timerFuture := workflow.NewTimer(ctx, types.TimerInterval)
5954
selector.AddFuture(timerFuture, func(f workflow.Future) {
60-
logger.Info("testWorkflow timer fired")
55+
logger.Info("timer-activity-loop-workflow timer fired")
6156
})
6257

6358
// wait for both activity and timer to complete
@@ -67,19 +62,19 @@ func TestWorkflow(ctx workflow.Context, input types.WorkflowInput) (types.Workfl
6762

6863
now := workflow.Now(ctx)
6964
if now.Before(endTime) {
70-
logger.Sugar().Infof("testWorkflow will continue iteration because [now %v] < [endTime %v]", now, endTime)
65+
logger.Sugar().Infof("timer-activity-loop-workflow will continue iteration because [now %v] < [endTime %v]", now, endTime)
7166
} else {
72-
logger.Sugar().Infof("testWorkflow will exit because [now %v] >= [endTime %v]", now, endTime)
67+
logger.Sugar().Infof("timer-activity-loop-workflow will exit because [now %v] >= [endTime %v]", now, endTime)
7368
break
7469
}
7570
}
7671

77-
logger.Info("testWorkflow completed")
72+
logger.Info("timer-activity-loop-workflow completed")
7873
return types.WorkflowOutput{Count: count}, nil
7974
}
8075

81-
func TestActivity(ctx context.Context, input string) (string, error) {
76+
func FormatStringActivity(ctx context.Context, input string) (string, error) {
8277
logger := activity.GetLogger(ctx)
83-
logger.Info("testActivity started")
78+
logger.Info("timer-activity-loop-workflow format-string-activity started")
8479
return fmt.Sprintf("Hello, %s!", input), nil
8580
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package workflows
2+
3+
import (
4+
timeractivityloop "github.com/uber/cadence/simulation/replication/workflows/timer_activity_loop"
5+
)
6+
7+
// Add workflows and activities to this map to register them with the worker.
8+
var (
9+
Workflows = map[string]any{
10+
"timer-activity-loop-workflow": timeractivityloop.Workflow,
11+
}
12+
Activities = map[string]any{
13+
"timer-activity-loop-format-string-activity": timeractivityloop.FormatStringActivity,
14+
}
15+
)

0 commit comments

Comments
 (0)