代码拉取完成,页面将自动刷新
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 {
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。