Files
crawlab/core/utils/init.go
2024-06-14 15:42:50 +08:00

31 lines
487 B
Go

package utils
import (
"github.com/crawlab-team/crawlab/core/interfaces"
"sync"
)
var moduleInitializedMap = sync.Map{}
func InitModule(id interfaces.ModuleId, fn func() error) (err error) {
res, ok := moduleInitializedMap.Load(id)
if ok {
initialized, _ := res.(bool)
if initialized {
return nil
}
}
if err := fn(); err != nil {
return err
}
moduleInitializedMap.Store(id, true)
return nil
}
func ForceInitModule(fn func() error) (err error) {
return fn()
}