Skip to content

Commit 466594e

Browse files
committed
fix check for heartbeat timeout set
Signed-off-by: Tihomir Surdilovic <tihomir@temporal.io>
1 parent f7aba20 commit 466594e

File tree

4 files changed

+18
-2
lines changed

4 files changed

+18
-2
lines changed

core/src/main/java/io/temporal/samples/autoheartbeat/activities/AutoActivities.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,6 @@ public interface AutoActivities {
2626
String runActivityOne(String input);
2727

2828
String runActivityTwo(String input);
29+
30+
String runActivityThree(String input);
2931
}

core/src/main/java/io/temporal/samples/autoheartbeat/activities/AutoActivitiesImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ public String runActivityTwo(String input) {
3434
return runActivity("runActivityTwo - " + input, 10);
3535
}
3636

37+
@Override
38+
public String runActivityThree(String input) {
39+
return runActivity("runActivityThree - " + input, 3);
40+
}
41+
3742
@SuppressWarnings("FutureReturnValueIgnored")
3843
private String runActivity(String input, int seconds) {
3944
for (int i = 0; i < seconds; i++) {

core/src/main/java/io/temporal/samples/autoheartbeat/interceptor/AutoHeartbeatActivityInboundCallsInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public void init(ActivityExecutionContext context) {
4747
public ActivityOutput execute(ActivityInput input) {
4848
// If activity has heartbeat timeout defined we want to apply auto-heartbeter
4949
AutoHeartbeatUtil autoHearbeater = null;
50-
if (activityHeartbeatTimeout != null) {
50+
if (activityHeartbeatTimeout != null && activityHeartbeatTimeout.getSeconds() > 0) {
5151
System.out.println(
5252
"Auto heartbeating applied for activity: "
5353
+ activityExecutionContext.getInfo().getActivityType());

core/src/main/java/io/temporal/samples/autoheartbeat/workflows/AutoWorkflowImpl.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ public class AutoWorkflowImpl implements AutoWorkflow {
3737
@Override
3838
public String exec(String input) {
3939
// Crete separate workflow stubs for same interface so we can show
40-
// use of different heartbeat timeouts
40+
// use of different heartbeat timeouts and activit that does not heartbeat
41+
// Note you can do this also via WorkflowImplementationOptions instead of using different
42+
// activity stubs if you wanted
4143
AutoActivities activitiesOne =
4244
Workflow.newActivityStub(
4345
AutoActivities.class,
@@ -54,13 +56,20 @@ public String exec(String input) {
5456
.setHeartbeatTimeout(Duration.ofSeconds(3))
5557
.build());
5658

59+
// Activity three does not heartbeat so autoheartbeat should not be applied to it
60+
AutoActivities activitiesThree =
61+
Workflow.newActivityStub(
62+
AutoActivities.class,
63+
ActivityOptions.newBuilder().setStartToCloseTimeout(Duration.ofSeconds(5)).build());
64+
5765
// Start our activity in CancellationScope so we can cancel it if needed
5866
List<Promise<String>> activityPromises = new ArrayList<>();
5967
scope =
6068
Workflow.newCancellationScope(
6169
() -> {
6270
activityPromises.add(Async.function(activitiesOne::runActivityOne, input));
6371
activityPromises.add(Async.function(activitiesTwo::runActivityTwo, input));
72+
activityPromises.add(Async.function(activitiesThree::runActivityThree, input));
6473
});
6574

6675
scope.run();

0 commit comments

Comments
 (0)