提交 908e4498 作者: Brian Tiger Chow

refactor(gatewayserver)

上级 35a5fa6f
...@@ -66,38 +66,49 @@ func run() error { ...@@ -66,38 +66,49 @@ func run() error {
defer node.Close() defer node.Close()
if *performGC { if *performGC {
go func() { if err := runGarbageCollectorWorker(ctx, node); err != nil {
for _ = range time.Tick(*garbageCollectInterval) { return err
if err := corerepo.GarbageCollect(node, ctx); err != nil { }
log.Println("failed to run garbage collection", err)
}
}
}()
} }
if *assetsPath != "" { if *assetsPath != "" {
fi, err := os.Stat(*assetsPath) if err := runFileServerWorker(ctx, node); err != nil {
if err != nil {
return err return err
} }
if !fi.IsDir() {
return errors.New("asset path must be a directory")
}
go func() {
for _ = range time.Tick(*refreshAssetsInterval) {
_, err := coreunix.AddR(node, *assetsPath)
if err != nil {
log.Println(err)
}
}
}()
} }
opts := []corehttp.ServeOption{ opts := []corehttp.ServeOption{
corehttp.GatewayOption(*writable), corehttp.GatewayOption(*writable),
} }
if err := corehttp.ListenAndServe(node, *host, opts...); err != nil { return corehttp.ListenAndServe(node, *host, opts...)
}
func runGarbageCollectorWorker(ctx context.Context, node *core.IpfsNode) error {
go func() {
for _ = range time.Tick(*garbageCollectInterval) {
if err := corerepo.GarbageCollect(node, ctx); err != nil {
log.Println("failed to run garbage collection", err)
}
}
}()
return nil
}
func runFileServerWorker(ctx context.Context, node *core.IpfsNode) error {
fi, err := os.Stat(*assetsPath)
if err != nil {
return err return err
} }
if !fi.IsDir() {
return errors.New("asset path must be a directory")
}
go func() {
for _ = range time.Tick(*refreshAssetsInterval) {
_, err := coreunix.AddR(node, *assetsPath)
if err != nil {
log.Println(err)
}
}
}()
return nil return nil
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论