993
}
994
995
>
func (s *scheduler) processUpdate(req *schedulespb.FullUpdateRequest) {
workflow.go
996
>
if err := s.checkConflict(req.ConflictToken); err != nil {
997
s.logger.Warn("Update conflicted with concurrent change")
998
return
999
}
1000
1002
>
1003
>
s.Schedule.Spec = req.Schedule.GetSpec()
1004
>
s.Schedule.Action = req.Schedule.GetAction()
1005
>
s.Schedule.Policies = req.Schedule.GetPolicies()
1006
>
s.Schedule.State = req.Schedule.GetState()
1007
>
// don't touch Info
1008
>
1009
>
s.ensureFields()
1010
>
s.compileSpec()
1011
>
1012
>
s.updateCustomSearchAttributes(req.SearchAttributes)
1013
>
1014
>
// Record customer start workflow memo payload size on each update.
1015
>
s.recordActionPayloadMetrics()
1016
>
1017
>
if s.hasMinVersion(UpdateFromPrevious) && !s.hasMinVersion(UseLastAction) {
1018
// We need to start re-processing from the last event, so that we catch actions whose
1019
// nominal time is before now but actual time (with jitter) is after now. Logic in