Files
orbit/weave/model/state.go

75 lines
2.2 KiB
Go

package model
// InstanceState 描述流程执行状态,独立的 Paused 标记控制是否允许新工作。
type InstanceState string
const (
InstanceRunning InstanceState = "RUNNING"
InstanceWaiting InstanceState = "WAITING"
InstanceCancelling InstanceState = "CANCELLING"
InstanceNeedsReview InstanceState = "NEEDS_REVIEW"
InstanceSucceeded InstanceState = "SUCCEEDED"
InstanceFailed InstanceState = "FAILED"
InstanceCancelled InstanceState = "CANCELLED"
)
func (s InstanceState) Terminal() bool {
return s == InstanceSucceeded || s == InstanceFailed || s == InstanceCancelled
}
func (i Instance) AllowsNewWork() bool {
return !i.Paused && i.StopKind == nil && i.CancelRequestedAt == nil && (i.State == InstanceRunning || i.State == InstanceWaiting)
}
type NodeKind string
const (
NodeTask NodeKind = "TASK" // 通过 Pulse 执行业务处理器。
NodeBranch NodeKind = "BRANCH" // 按已保存结果选择条件路径。
NodeParallel NodeKind = "PARALLEL" // 展开有界并行分支。
NodeJoin NodeKind = "JOIN" // 按规则汇合并行结果。
NodeSignal NodeKind = "SIGNAL" // 等待业务信号。
NodeTimer NodeKind = "TIMER" // 等待指定时间。
NodePoll NodeKind = "POLL" // 有界重复查询节点。
)
type StepState string
const (
StepBlocked StepState = "BLOCKED"
StepReady StepState = "READY"
StepActive StepState = "ACTIVE"
StepWaiting StepState = "WAITING"
StepNeedsReview StepState = "NEEDS_REVIEW"
StepSucceeded StepState = "SUCCEEDED"
StepFailed StepState = "FAILED"
StepCancelled StepState = "CANCELLED"
StepSkipped StepState = "SKIPPED"
)
type WaitState string
const (
WaitWaiting WaitState = "WAITING"
WaitSatisfied WaitState = "SATISFIED"
WaitExpired WaitState = "EXPIRED"
WaitCancelled WaitState = "CANCELLED"
)
type SignalState string
const (
SignalPending SignalState = "PENDING"
SignalConsumed SignalState = "CONSUMED"
SignalExpired SignalState = "EXPIRED"
SignalRejected SignalState = "REJECTED"
)
type InboxState string
const (
InboxPending InboxState = "PENDING"
InboxLeased InboxState = "LEASED"
InboxProcessed InboxState = "PROCESSED"
InboxQuarantined InboxState = "QUARANTINED"
)