Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

寄语

欢迎大家积极参与编辑,把自己遇到的坑怎么填的记录起来。众人拾柴火焰高

问题分类

Children Display
alltrue
excerptTypesimple

不同环境如何,加载不同的配置文件?

不同环境指的是:开发环境/测试环境/预发环境/生产环境等。

1、首先,在一些互联网项目中,特别是分布式或者微服务化的架构下,一般会使用配置管理中心,不同的环境会对应不同的配置管理中心,所以这样的场景不会存在这样的问题。

2、其次,如果是传统的项目管理方式下,可能会将配置文件放到代码仓库中共同管理,这样的方式是不推荐的。如果您仍然想要这么做,您可以通过系统环境变量或者命令行启动参数,让程序自动选择配置文件或者指定配置目录,参考 配置管理 章节。例如:./app --gf.gcfg.file config-prod.toml 则通过命令行启动参数的方式将默认读取的配置文件修改为了 config-prod.toml文件。

Note

我们更加不建议您的是在程序中通过代码逻辑来区分和读取不同环境的配置文件。

Linux下执行 go build main.go 提示连接超时 connection timed out

Code Block
go: github.com/gogf/gf@v1.14.6-0.20201214132204-c685876e6f67: Get "https://proxy.golang.org/github.com/gogf/gf/@v/v1.14.6-0.20201214132204-c685876e6f67.mod": 
dial tcp 172.217.160.113:443: 
connect: connection timed out

解决办法:

Code Block
export GO111MODULE=on
export GOPROXY=https://goproxy.cn

具体请看:

glog with "ERROR: logging before flag.Parse"

Golang官方有个简单的日志库包名也叫做glog,检查你文件顶部import的包名,将github.com/golang/glog 修改为github.com/gogf/gf/os/glog即可。

gcron与http如何同时使用?

main.go

Code Block
func main() {

	//定时任务1
	gcron.AddSingleton("*/5 * * * * *", func() {
		task.Test()
		glog.Debug("gcron1")
	})

	//定时任务2
	gcron.AddSingleton("*/10 * * * * *", func() {
		glog.Debug("gcron2")
	})

	//接收http请求
	g.Server().Run()

}
注意, gcron 一定要在g.Server().Run的前面。




Panel
titleContent Menu

Table of Contents


...