大家好,我是 frank。 欢迎大家点击标题下方蓝色文字「Golang 语言开发栈」关注公众号。
01
介绍
Go 语言作为静态编译型语言,每次修改配置文件后,我们都需要重新编译,修改的配置信息才可以生效,而动态编译型语言修改配置文件可以自动生效,相对来说更方便一些。
fsnotifyviper
02
fsnotify 源码解读
NewWatcher 函数:
fsnotifyNewWatcher
NewWatcher*Watcher
EventsErrorsEventerrorchannel
事件:
EventEvents
EventCreateWriteRemoveRenameChmod
for ... selectwatcherEventsErrors
EventHasStringHas
监听器:
WatcherAddCloseRemoveWatchList
EventsAdd
03
fsnotify 使用示例
fsnotifyfsnotify
fsnotify
NewWatcherwatcherAdddeferClose
goroutineWritelog.txt
log.txt
我们可以使用该特性,自动监听应用程序的配置文件,避免修改配置信息后,还需要重新编译并启动应用才可以生效。
04
总结
fsnotify
fsnotify
建议感兴趣的读者朋友们,继续阅读该库的官方文档和源码,了解在不同系统平台中使用的注意事项,并有效运用在自己的项目中。
推荐阅读:
参考资料:
- https://pkg.go.dev/github.com/fsnotify/fsnotify
- https://github.com/fsnotify/fsnotify