大家好,我是 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

建议感兴趣的读者朋友们,继续阅读该库的官方文档和源码,了解在不同系统平台中使用的注意事项,并有效运用在自己的项目中。

推荐阅读:

参考资料:

  1. https://pkg.go.dev/github.com/fsnotify/fsnotify
  2. https://github.com/fsnotify/fsnotify