File tree Expand file tree Collapse file tree 4 files changed +61
-2
lines changed
src/main/java/com/uber/cadence/samples/spring Expand file tree Collapse file tree 4 files changed +61
-2
lines changed Original file line number Diff line number Diff line change 5
5
6
6
import com .uber .cadence .client .WorkflowClient ;
7
7
import com .uber .cadence .client .WorkflowClientOptions ;
8
- import com .uber .cadence .samples .spring .workflows .HelloWorldWorkflowImpl ;
8
+ import com .uber .cadence .samples .spring .workflows .impl .HelloWorldWorkflowImpl ;
9
+ import com .uber .cadence .samples .spring .workflows .impl .SignalWorkflowImpl ;
9
10
import com .uber .cadence .serviceclient .ClientOptions ;
10
11
import com .uber .cadence .serviceclient .WorkflowServiceTChannel ;
11
12
import com .uber .cadence .worker .Worker ;
@@ -33,7 +34,12 @@ public void startWorker(ApplicationStartedEvent event) {
33
34
WorkflowClient workflowClient = context .getBean (WorkflowClient .class );
34
35
WorkerFactory factory = WorkerFactory .newInstance (workflowClient );
35
36
Worker worker = factory .newWorker (TASK_LIST );
37
+
38
+ // HelloWorldWorkflow registration
36
39
worker .registerWorkflowImplementationTypes (HelloWorldWorkflowImpl .class );
40
+
41
+ // SignalWorkflow registration
42
+ worker .registerWorkflowImplementationTypes (SignalWorkflowImpl .class );
37
43
factory .start ();
38
44
}
39
45
}
Original file line number Diff line number Diff line change
1
+ package com .uber .cadence .samples .spring .workflows ;
2
+
3
+ import com .uber .cadence .samples .spring .models .SampleMessage ;
4
+ import com .uber .cadence .workflow .SignalMethod ;
5
+ import com .uber .cadence .workflow .WorkflowMethod ;
6
+
7
+ public interface SignalWorkflow {
8
+ @ WorkflowMethod
9
+ void getGreeting (SampleMessage sampleMessage );
10
+
11
+ @ SignalMethod
12
+ void waitForGreeting (String greeting );
13
+
14
+ @ SignalMethod
15
+ void cancel ();
16
+ }
Original file line number Diff line number Diff line change 1
- package com .uber .cadence .samples .spring .workflows ;
1
+ package com .uber .cadence .samples .spring .workflows . impl ;
2
2
3
3
import com .uber .cadence .samples .spring .models .SampleMessage ;
4
+ import com .uber .cadence .samples .spring .workflows .HelloWorldWorkflow ;
4
5
import com .uber .cadence .workflow .Workflow ;
5
6
import org .slf4j .Logger ;
6
7
Original file line number Diff line number Diff line change
1
+ package com .uber .cadence .samples .spring .workflows .impl ;
2
+
3
+ import com .uber .cadence .samples .spring .models .SampleMessage ;
4
+ import com .uber .cadence .samples .spring .workflows .SignalWorkflow ;
5
+ import com .uber .cadence .workflow .Workflow ;
6
+ import org .slf4j .Logger ;
7
+
8
+ public class SignalWorkflowImpl implements SignalWorkflow {
9
+ private final Logger logger = Workflow .getLogger (SignalWorkflowImpl .class );
10
+ private String name ;
11
+ private boolean cancel = false ;
12
+
13
+ @ Override
14
+ public void getGreeting (SampleMessage sampleMessage ) {
15
+ logger .info ("executing SignalWorkflow::getGreeting" );
16
+ this .name = sampleMessage .GetMessage ();
17
+ while (true ) {
18
+ Workflow .await (() -> cancel );
19
+ if (cancel ) {
20
+ logger .info ("SignalWorkflow cancelled" );
21
+ return ;
22
+ }
23
+ }
24
+ }
25
+
26
+ @ Override
27
+ public void waitForGreeting (String greeting ) {
28
+ logger .info ("received signal from SignalWorkflow:waitForName" );
29
+ logger .info (greeting + " " + name + "!" );
30
+ }
31
+
32
+ @ Override
33
+ public void cancel () {
34
+ this .cancel = true ;
35
+ }
36
+ }
You can’t perform that action at this time.
0 commit comments