feat: add generic queue and subscription retirement
This commit is contained in:
@@ -129,10 +129,11 @@ func (s *WorkflowInstanceStore) Start(ctx context.Context, t auth.Token, key str
|
||||
if len(version.Analysis.Queues) > 0 && !p.Allows("tasks:submit") {
|
||||
return fault.Forbidden
|
||||
}
|
||||
if err := lockWorkflowQueues(ctx, tx, t.NamespaceID, p, version.Analysis.Queues); err != nil {
|
||||
return err
|
||||
}
|
||||
if cached != nil {
|
||||
// 已完成流程所用队列可以退役;原受理回执仍核对当前读取范围,但不重新申请执行权。
|
||||
if err := authorizeWorkflowQueues(ctx, tx, t.NamespaceID, p, version.Analysis.Queues); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := json.Unmarshal(cached, &out); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -146,6 +147,9 @@ func (s *WorkflowInstanceStore) Start(ctx context.Context, t auth.Token, key str
|
||||
out.Deduplicated = true
|
||||
return nil
|
||||
}
|
||||
if err := lockWorkflowQueues(ctx, tx, t.NamespaceID, p, version.Analysis.Queues); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := definition.ValidateData(version.Specification.InputType, in.Input); err != nil {
|
||||
return fault.Invalid("workflow input does not match fixed version")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user