Ai
1 Star 0 Fork 0

PengHengBen/devcloud-mini

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
interface.go 1.28 KB
一键复制 编辑 原始数据 按行查看 历史
chris Peng 提交于 2024-01-22 18:46 +08:00 . 补充资源同步
package provider
import (
"context"
"gitee.com/penghengben/devcloud-mini/cmdb/apps/resource"
)
// 多厂商接口的封装,抹平多个厂商接口的差异,便于上层使用该接口来进行业务调用
// tencent: QueryHost(ctx, in) (resourceSet, error)
// huawei: QueryHost(ctx, in) (resourceSet, error)
// aliyun: QueryHost(ctx, in) (resourceSet, error)
// Provider().QueryHost()
// http.Handler
type HostHandler func(*resource.Resource)
// 客户端封装
type HostProvider interface {
// 获取Host 主机接口,数据是分页批量拉取,我们的接口是 单独一个一个创建资源的
// resp = QueryHost()
// for resp { CreateResource(item) }
// 拉取一页数据: 10s, 一个一个往数据库里面写,这样是最基本的接口设计
// 如果有一万条数据,会非常耗内存空间,回调函数就不会有这个问题,查出来一条处理一条
// QueryHost(context.Context, *QueryHostRequest) (*resource.ResourceSet, error)
// 类比 Js ForEach, 给一个回调函数
// QueryHost() {for resources; fn(item)}
// 通过回调把接口返回出去, 流式处理Stream
QueryHost(context.Context, *QueryHostRequest, HostHandler) error
}
func NewQueryHostRequet() *QueryHostRequest {
return &QueryHostRequest{}
}
type QueryHostRequest struct {
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/penghengben/devcloud-mini.git
git@gitee.com:penghengben/devcloud-mini.git
penghengben
devcloud-mini
devcloud-mini
52595909206d

搜索帮助