707
708
// Populate computed views from Invoker's BufferedStarts.
710
>
info := common.CloneProto(s.Info)
711
>
info.RunningWorkflows = invoker.runningWorkflowExecutions()
712
>
info.RecentActions = invoker.recentActions()
713
>
info.FutureActionTimes = futureActionTimes
714
>
// BufferedStarts holds waiting, running, and recently-completed entries; only the
715
>
// waiting portion (those not yet surfaced via RecentActions) counts as buffered.
716
>
info.BufferSize = int64(len(invoker.GetBufferedStarts()) - len(info.RecentActions))
717
>
718
>
executionInfo := ctx.ExecutionInfo()
719
>
info.StateSizeBytes = int64(executionInfo.ApproximateStateSize)
720
>
721
>
return &schedulerpb.DescribeScheduleResponse{
722
>
FrontendResponse: &workflowservice.DescribeScheduleResponse{
723
>
Schedule: schedule,
724
>
Info: info,
725
>
ConflictToken: s.generateConflictToken(),
726
>
Memo: &commonpb.Memo{Fields: memo},
727
>
SearchAttributes: &commonpb.SearchAttributes{IndexedFields: visibility.CustomSearchAttributes(ctx)},
728
>
},
729
>
}, nil
730
}
731
732
// cleanSpec sets default values in ranges for the DescribeSchedule response.
733
>
func cleanSpec(spec *schedulepb.ScheduleSpec) {
scheduler.go
734
>
cleanRanges := func(ranges []*schedulepb.Range) {
735
for _, r := range ranges {
736
if r.End < r.Start {