1586
ctx chasm.MutableContext,
1587
input WithToken[*historyservice.RecordActivityTaskHeartbeatRequest],
1588
>
) (*historyservice.RecordActivityTaskHeartbeatResponse, error) {
activity.go
1589
>
err := a.validateActivityTaskToken(ctx, input.Token, input.Request.GetNamespaceId())
1590
>
if err != nil {
1591
return nil, err
1592
}
1593
>
prevHeartbeat, _ := a.LastHeartbeat.TryGet(ctx)
activity.go
1594
>
a.LastHeartbeat = chasm.NewDataField(ctx, &activitypb.ActivityHeartbeatState{
1595
>
RecordedTime: timestamppb.New(ctx.Now(a)),
1596
>
Details: input.Request.GetHeartbeatRequest().GetDetails(),
1597
>
TotalHeartbeatCount: prevHeartbeat.GetTotalHeartbeatCount() + 1,
1598
>
})
1599
>
if heartbeatTimeout := a.GetHeartbeatTimeout().AsDuration(); heartbeatTimeout > 0 {
1600
ctx.AddTask(
1601
a,