当前位置: 首页 > news >正文

免费建设展示网站做网站风险分析

免费建设展示网站,做网站风险分析,建设网站的合约,手表网站app(接上篇) EdgeCore之devicetwin 前面对EdgeCore组件的edged功能模块进行了分析,本节对EdgeCore组件的另一个功能模块devicetwin进行剖析,包括devicetwin的struct调用链剖析、devicetwin的具体逻辑剖析、devicetwin的缓存机制剖析…

(接上篇)

EdgeCoredevicetwin

前面对EdgeCore组件的edged功能模块进行了分析,本节对EdgeCore组件的另一个功能模块devicetwin进行剖析,包括devicetwin的struct调用剖析、devicetwin的具体逻辑剖析、devicetwin的缓存机制剖析。

1.devicetwin的struct调用剖析

EdgeCore模块注册函数入手,具体如下所示。

KubeEdge/edge/cmd/EdgeCore/app/server.go

// registerModules register all the modules started in EdgeCore

func registerModules() {

devicetwin.Register()

...

}

进入registerModules()函数中的devicetwin.Register()函数定义,具体如下所示。

KubeEdge/edge/pkg/devicetwin/devicetwin.go

// Register register devicetwin

func Register() {

dtclient.InitDBTable()

dt := DeviceTwin{}

core.Register(&dt)

}

Register()函数主要做了如下3件事。

1)初始化devicetwin需要的数据库表(dtclient.InitDBTable());

2)实例化DeviceTwin struct(dt := DeviceTwin{});

3)注册将已经实例化的DeviceTwin struct(core.Register(&dt))。

下面深入剖析初始化devicetwin需要的数据库表具体做了哪些事情以及DeviceTwin struct具体由哪些属性组成。

(1)devicetwin数据库相关struct剖析

这部分剖析初始化devicetwin需要的数据库及数据库表相关的struct,具体如下所示。

KubeEdge/edge/pkg/devicetwin/dtclient/sql.go

//InitDBTable create table

func InitDBTable() {

klog.Info("Begin to register twin model")

dbm.RegisterModel("twin", new(Device))

dbm.RegisterModel("twin", new(DeviceAttr))

dbm.RegisterModel("twin", new(DeviceTwin))

}

InitDBTable()函数中,通过封装的beegoorm(https://GitHub.com/astaxie/beego/tree/develop/orm)创建数据库twin,并初始化device、device_attr和device_twin三张表。与上述三张表对应的结构体如下所示。

KubeEdge/edge/pkg/devicetwin/dtclient/device_db.go

//Device the struct of device

type Device struct {

ID          string `orm:"column(id); size(64); pk"`

Name        string `orm:"column(name); null; type(text)"`

Description string `orm:"column(description); null; type(text)"`

State       string `orm:"column(state); null; type(text)"`

LastOnline  string `orm:"column(last_online); null; type(text)"`

}

KubeEdge/edge/pkg/devicetwin/dtclient/deviceattr_db.go

//DeviceAttr the struct of device attributes

type DeviceAttr struct {

ID          int64  `orm:"column(id);size(64);auto;pk"`

DeviceID    string `orm:"column(deviceid); null; type(text)"`

Name        string `orm:"column(name);null;type(text)"`

Description string `orm:"column(description);null;type(text)"`

Value       string `orm:"column(value);null;type(text)"`

Optional    bool   `orm:"column(optional);null;type(integer)"`

AttrType    string `orm:"column(attr_type);null;type(text)"`

Meta Data    string `orm:"column(metadata);null;type(text)"`

}

KubeEdge/edge/pkg/devicetwin/dtclient/devicetwin_db.go

//DeviceTwin the struct of device twin

type DeviceTwin struct {

ID              int64  `orm:"column(id);size(64);auto;pk"`

DeviceID        string `orm:"column(deviceid); null; type(text)"`

Name            string `orm:"column(name);null;type(text)"`

Description     string `orm:"column(description);null;type(text)"`

Expected        string `orm:"column(expected);null;type(text)"`

Actual          string `orm:"column(actual);null;type(text)"`

ExpectedMeta    string `orm:"column(expected_meta);null;type(text)"`

ActualMeta      string `orm:"column(actual_meta);null;type(text)"`

ExpectedVersion string `orm:"column(expected_version);null;type(text)"`

ActualVersion   string `orm:"column(actual_version);null;type(text)"`

Optional        bool   `orm:"column(optional);null;type(integer)"`

AttrType        string `orm:"column(attr_type);null;type(text)"`

Meta Data        string `orm:"column(metadata);null;type(text)"`

}

以上3个文件中除了包含与device、device_attr和device_twin三张表对应的结构体定义外,还有针对这三张表的增、删、改、查方法的定义。

未完待续…… 

http://www.laogonggong.com/news/55467.html

相关文章:

  • 海口云建站模板如何用wordpress搭建个人博客
  • 做网站的注意什么问题做网站计入什么科目
  • 网站背景图片自动切换柳州正规网站制作公司哪家好
  • 在线教育网站怎样建设贵阳住房和城乡建设部网站
  • 山东网站建设网站北京朝林建设集团网站
  • 河北网站推广优化上海有名的科技公司
  • 阐述什么是网站现在由哪些网站可以做外链
  • 站酷网在线官网做周边的网站
  • WordPress 代码建站西安网站seo工作室
  • 自己怎么做卖服装的网站网站统计分析
  • 360 网站优化企业网站开发要学什么
  • 网站建设工作领导小组绵阳科技网站建设
  • 可以更改上传到网站的文件内容吗做网站怎么调用数据库
  • 浩森宇特北京做网站2021年搜索引擎排名
  • 哪个网站好哈尔滨网站开发制作
  • 做国外网站要注意什么深圳 赢客创想网络技术股份有限公司 网站建设
  • 百竞网站建设400网站推广
  • linux做网站教程兼职 网站建设
  • 苏州网站建设的一般流程网站首页加载特效
  • 廊坊网站烟台网站推广哪家好
  • 龙华网站设计公司公司部门职责及配置
  • 网站建设应该注意什么网站的统计 怎么做
  • 网站克隆 有后台登录免费视频素材库app
  • 有什么免费建站网站推广之家邀请码
  • 门户网站建设理由什么是网站及其制作步骤
  • 湖南的商城网站建设初中校园网站建设制度
  • 怎么做一个自己的网页关于进一步优化 广州
  • 南京产品网站建设收费拉新推广怎么找渠道
  • 东莞锂电池网站建设有什么教做维c甜品的网站
  • 国家骨干院校建设网站外贸网站策划