mirror of
https://gitee.com/dromara/mayfly-go
synced 2026-01-24 22:45:47 +08:00
61 lines
1.8 KiB
Go
61 lines
1.8 KiB
Go
package application
|
|
|
|
import (
|
|
"context"
|
|
"mayfly-go/internal/event"
|
|
"mayfly-go/internal/machine/domain/entity"
|
|
"mayfly-go/pkg/eventbus"
|
|
"mayfly-go/pkg/global"
|
|
"mayfly-go/pkg/ioc"
|
|
"sync"
|
|
)
|
|
|
|
func InitIoc() {
|
|
ioc.Register(new(machineAppImpl), ioc.WithComponentName("MachineApp"))
|
|
ioc.Register(new(machineFileAppImpl), ioc.WithComponentName("MachineFileApp"))
|
|
ioc.Register(new(machineScriptAppImpl), ioc.WithComponentName("MachineScriptApp"))
|
|
ioc.Register(new(machineCronJobAppImpl), ioc.WithComponentName("MachineCronJobApp"))
|
|
ioc.Register(new(machineTermOpAppImpl), ioc.WithComponentName("MachineTermOpApp"))
|
|
ioc.Register(new(machineCmdConfAppImpl), ioc.WithComponentName("MachineCmdConfApp"))
|
|
}
|
|
|
|
func Init() {
|
|
sync.OnceFunc(func() {
|
|
GetMachineCronJobApp().InitCronJob()
|
|
|
|
GetMachineApp().TimerUpdateStats()
|
|
|
|
GetMachineTermOpApp().TimerDeleteTermOp()
|
|
|
|
global.EventBus.Subscribe(event.EventTopicDeleteMachine, "machineFile", func(ctx context.Context, event *eventbus.Event) error {
|
|
me := event.Val.(*entity.Machine)
|
|
return GetMachineFileApp().DeleteByCond(ctx, &entity.MachineFile{MachineId: me.Id})
|
|
})
|
|
|
|
global.EventBus.Subscribe(event.EventTopicDeleteMachine, "machineScript", func(ctx context.Context, event *eventbus.Event) error {
|
|
me := event.Val.(*entity.Machine)
|
|
return GetMachineScriptApp().DeleteByCond(ctx, &entity.MachineScript{MachineId: me.Id})
|
|
})
|
|
})()
|
|
}
|
|
|
|
func GetMachineApp() Machine {
|
|
return ioc.Get[Machine]("MachineApp")
|
|
}
|
|
|
|
func GetMachineFileApp() MachineFile {
|
|
return ioc.Get[MachineFile]("MachineFileApp")
|
|
}
|
|
|
|
func GetMachineScriptApp() MachineScript {
|
|
return ioc.Get[MachineScript]("MachineScriptApp")
|
|
}
|
|
|
|
func GetMachineCronJobApp() MachineCronJob {
|
|
return ioc.Get[MachineCronJob]("MachineCronJobApp")
|
|
}
|
|
|
|
func GetMachineTermOpApp() MachineTermOp {
|
|
return ioc.Get[MachineTermOp]("MachineTermOpApp")
|
|
}
|