Skip to content

Commit 18f8014

Browse files
committed
update signal to mutate the state, also get rid of infinite loop in workflow method
1 parent 2880ee1 commit 18f8014

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/main/java/com/uber/cadence/samples/spring/workflows/impl/SignalWorkflowImpl.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,28 @@
88
public class SignalWorkflowImpl implements SignalWorkflow {
99
private final Logger logger = Workflow.getLogger(SignalWorkflowImpl.class);
1010
private String name;
11+
private String greetingMsg;
1112
private boolean cancel = false;
1213

1314
@Override
1415
public void getGreeting(SampleMessage sampleMessage) {
1516
logger.info("executing SignalWorkflow::getGreeting");
1617
this.name = sampleMessage.GetMessage();
17-
while (true) {
18-
Workflow.await(() -> cancel);
19-
if (cancel) {
20-
logger.info("SignalWorkflow cancelled");
21-
return;
22-
}
23-
}
18+
Workflow.await(
19+
() -> {
20+
if (cancel) {
21+
logger.info("SignalWorkflow cancelled");
22+
}
23+
logger.info("greeting: " + this.greetingMsg);
24+
return cancel;
25+
});
26+
logger.info("greeting:" + this.greetingMsg);
2427
}
2528

2629
@Override
2730
public void waitForGreeting(String greeting) {
2831
logger.info("received signal from SignalWorkflow:waitForName");
29-
logger.info(greeting + " " + name + "!");
32+
this.greetingMsg = String.format("%s, %s!", greeting, this.name);
3033
}
3134

3235
@Override

0 commit comments

Comments
 (0)