Golang 使用 Supervisor 部署
环境说明
- Centos 8.5.2111
- Golang 1.17.6
- Supervisor
步骤说明
Supervisor 安装
# centos |
Golang
示例代码
config.yaml
env: |
一个简单的定时任务package main
import (
"fmt"
"github.com/robfig/cron/v3"
"github.com/spf13/viper"
"io/ioutil"
"net/http"
)
func main() {
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.AddConfigPath("./config")
err := viper.ReadInConfig()
if err != nil {
panic(fmt.Errorf("fatal error config file: %w", err))
}
// 请求地址
domain := viper.GetString("env.domain")
// 定时
c := cron.New(cron.WithSeconds())
// 自动关闭订单
c.AddFunc("@every 10s", func() {
path := "/index/api/close_order"
resp, err := http.Get(domain + path)
if err != nil {
fmt.Println(err.Error())
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
})
c.Start()
select {}
}
测试
打包
注:Env
中为 GOARCH=amd64;GOOS=linux
部署
上传二进制main
到运行目录
chmod +x main
赋予执行权限
supervisor 配置
[program:main] |
启动# 更新配置
supervisorctl update
# 启动
supervisorctl start main