RabbitMQ 入门 (Go) - 3. 模拟传感器,生成数据并发布

现在,我们需要模拟传感器,生成数据,并发布到 RabbitMQ

建立传感器项目

 GOPATH src 下建立文件夹 sensors,使用 go mod init 初始化,并创建 main.go

同时别忘了安装 amqp 的包:go get -u github.com/streadway/amqp

 

我们要生成一些模拟数据,生成数据有一定的范围(位于一个最大值和最小值之间),如下图:

RabbitMQ 入门 (Go) - 3. 模拟传感器,生成数据并发布

 

因此,我们需要这样几个配置参数:

传感器的名称

传感器数据的更新频率

模拟生成数据的最大值

模拟生成数据的最小值

与前一次生成数据的差值的最大值(变化幅度的最大值)

 

设置命令行参数并读取

在这个项目里,我们需要通过命令行参数来传递配置,并在 Go 程序里面进行解析和读取。我们可以使用 os.Args 来搞这些命令行参数,但是更好的办法是使用 flag 这个包(其内部实现使用的也是 os.Args)。

 

我们先看代码:

RabbitMQ 入门 (Go) - 3. 模拟传感器,生成数据并发布

 5-9 行,我们声明了 5 个命令行参数。都是使用 flag 包下相应的函数实现的。

这几个命令行参数分别表示传感器名称、模拟数据的更新频率、模拟数据的最大值、最小值以及变化幅度的最大值。

这些命令行参数的类型分别是 stringuintfloat64float64float64

这些函数的参数都类似:

第一个参数是命令行参数的名称

第二个参数是命令行参数的默认值

第三个参数是参数的描述/帮助

 main 函数里,我们调用     flat.Parse() 函数,就可以将命令行的参数值解析到 5-9 行声明变量里面。

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfzsj.html