时序数据库Influx-IOx源码学习三(命令行及配置)
欢迎关注公众号:
上篇介绍到:InfluxDB-IOx的环境搭建,详情见:https://my.oschina.net/u/3374539/blog/5016798
本章开始,讲解启动的主流程!
打开src/main.rs文件可以找到下面的代码
在main方法中映入眼帘的第一行就是load_dotenv()方法,然后是Config::from_args()接下来就分别跟踪这两个方法,看明白是怎么工作的。
在README文件中,我们可以看到这样一行:
Shouldyoudesirespecifyingconfigviaafile,youcandosousinga.envformattedfileintheworkingdirectory.Youcanusetheprovidedexampleasatemplateifyouwant:
cpdocs/env.example.env
意思就是这个工程使用的配置文件,名字是.env。了解这个特殊的名字之后,我们看代码src/main.rs:276:
然后跟踪dotenv()方法看看如何执行(这里就进入了dotenv这个crate了):为了方便写,我就直接把所有调用,从上到下的顺序全都写出来了
研究这里的时候,我发现了一个比较好玩儿的东西就是返回值的Result。标准库的定义中,Result是有两个值,分别是。
更详细的rust错误处理,可以参见:https://zhuanlan.zhihu.com/p/109242831
在main方法中我们可以看到第二行,
这是influx使用了structopt这个crate,调用该方法后,程序会根据结构体上的#[structopt()]中的参数进行执行命令行解析。
下面通过打印出来的例子来对应structopt中的内容。
可以看到,我们执行了Run这个变体的Subcommand,并且指定了Config结构体中的verbose4次,IOx也成功地识别了。
后面继续学习程序的启动过程,祝玩儿的开心!
主题测试文章,只做测试使用。发布者:最新稳定辅助网,转转请注明出处:https://www.744broad.com/14411.html