feat: add durable relative task delays and outage recovery regression
This commit is contained in:
@@ -16,7 +16,7 @@ import (
|
||||
type Definition struct {
|
||||
Rule Rule `json:"rule"` // Rule 时间规则;start_at 是基准,不允许追溯到版本生效前产生新任务。
|
||||
Policy Policy `json:"policy"` // Policy 明确的漏跑、重叠和补跑边界。
|
||||
Task service.SubmitInput `json:"task"` // Task 每次触发的模板,禁止绝对 available_at/start_deadline_at。
|
||||
Task service.SubmitInput `json:"task"` // Task 每次触发的模板,禁止 available_at/start_deadline_at 和非零 delay_ms。
|
||||
}
|
||||
|
||||
// CreateInput 创建持久化计划,暂停计划也保存完整的触发进度。
|
||||
@@ -121,8 +121,8 @@ func Normalize(in Definition) (Definition, error) {
|
||||
if err := in.Policy.Validate(); err != nil {
|
||||
return in, fault.Invalid(err.Error())
|
||||
}
|
||||
if in.Task.AvailableAt != nil || in.Task.StartDeadlineAt != nil {
|
||||
return in, fault.Invalid("schedule templates cannot contain absolute task times")
|
||||
if in.Task.AvailableAt != nil || in.Task.StartDeadlineAt != nil || in.Task.DelayMS != 0 {
|
||||
return in, fault.Invalid("schedule templates cannot contain task times or a nonzero delay_ms")
|
||||
}
|
||||
in.Task, err = service.NormalizeSubmit(in.Task)
|
||||
return in, err
|
||||
|
||||
Reference in New Issue
Block a user