Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccidentRecord ¶
type AccidentRecord struct { PrimeCulprit *prc.ProcessId // 事故元凶(通常是消息发送人,可能不存在或逃逸) Victim *prc.ProcessId // 事故受害者 Supervisor Supervisor // 事故监管者,将由其进行决策 Message prc.Message // 造成事故发生的消息 Reason prc.Message // 事故原因 Strategy Strategy // 受害人携带的监督策略,应由责任人执行 State *AccidentState // 事故状态 Stack []byte // 事件堆栈 }
AccidentRecord 事故记录
func NewAccidentRecord ¶
func NewAccidentRecord(primeCulprit, victim *prc.ProcessId, supervisor Supervisor, message, reason prc.Message, strategy Strategy, state *AccidentState, stack []byte) *AccidentRecord
type AccidentState ¶
type AccidentState struct {
// contains filtered or unexported fields
}
AccidentState 事故状态
func NewAccidentState ¶
func NewAccidentState() *AccidentState
func (*AccidentState) AccidentCount ¶
func (as *AccidentState) AccidentCount() int
AccidentCount 获取事故数量
func (*AccidentState) LastTime ¶
func (as *AccidentState) LastTime() time.Time
LastTime 获取最后一次产生事故的时间
type Decide ¶
type Decide interface {
Decide(record *AccidentRecord) Directive
}
Decide 监管决策是一个用于监督者策略的函数接口
type FunctionalDecide ¶
type FunctionalDecide func(record *AccidentRecord) Directive
FunctionalDecide 是一个用于监督者策略的函数类型
func (FunctionalDecide) Decide ¶
func (f FunctionalDecide) Decide(record *AccidentRecord) Directive
Decide 实现了 Decide 接口
type FunctionalLogger ¶
type FunctionalLogger func(record *AccidentRecord)
FunctionalLogger 是一个函数类型的监管记录器
type FunctionalStrategy ¶
type FunctionalStrategy func(record *AccidentRecord)
FunctionalStrategy 是一个函数类型的监督策略
func (FunctionalStrategy) OnPolicyDecision ¶
func (f FunctionalStrategy) OnPolicyDecision(record *AccidentRecord)
OnPolicyDecision 当发生事故时
type FunctionalStrategyProvider ¶
type FunctionalStrategyProvider func() Strategy
FunctionalStrategyProvider 是一个函数类型的监督策略提供者
func (FunctionalStrategyProvider) Provide ¶
func (f FunctionalStrategyProvider) Provide() Strategy
Provide 提供一个监督策略
type Logger ¶
type Logger interface { // Log 当发生事故时 Log(record *AccidentRecord) }
Logger 监管记录器是一个处理函数,它将在发生意外时被调用,以记录用户定义的日志信息
type Strategy ¶
type Strategy interface { // OnPolicyDecision 当发生事故时 OnPolicyDecision(record *AccidentRecord) }
Strategy 是用于对事故记录进行决策处理的监督策略
type StrategyProvider ¶
type StrategyProvider interface { // Provide 提供一个监督策略 Provide() Strategy }
StrategyProvider 是监督策略提供者
type Supervisor ¶
type Supervisor interface { // Ref 获取监管者的进程引用 Ref() *prc.ProcessId // Children 获取该监管者下的所有子进程引用 Children() []*prc.ProcessId // Restart 重启指定进程,会导致该进程的所有子进程被停止 Restart(refs ...*prc.ProcessId) // Stop 停止指定进程及其所有子进程 Stop(refs ...*prc.ProcessId) // Resume 恢复指定进程 Resume(refs ...*prc.ProcessId) // Escalate 升级事故 Escalate(record *AccidentRecord) }
Click to show internal directories.
Click to hide internal directories.