gpt4 book ai didi

go - 即使进程结束也缓存或保留一个值

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:51 24 4
gpt4 key购买 nike

在 GoLang 中编写 CLI 应用程序并希望在不同的 session /命令中使用 URL。通过 Cobra 实现 CLI,我想在开始时配置 URL,然后在其他命令中继续使用它。

尝试使用以下方法-

os.Setenv("URL", URL)
os.Getenv("URL")

以上方法仅适用于同一进程(如果 set 和 get 进程不同则无效)。

知道我们该怎么做吗?

更新:我想知道是否可以在 Go 中完成?我知道这可以通过将其存储在文件/数据库中或者甚至在环境变量中设置来轻松完成,但探索在 Go 中完成它的方法。

最佳答案

您可以建立一个简单的监听器,为其他进程提供服务请求。它可以接收和提供任何类型的内容。

使用 net.Listen("tcp",":8080") 使用 go 设置监听守护进程非常容易。或许您可以将这些片段作为样板文件:

package main

import (
"fmt"
"io"
"log"
"net"
"strings"
)

type textProcessor struct {
input *string
}

func (this textProcessor) Write(b []byte) (int, error) {
*this.input = string(b)
return len(strings.TrimSpace(string(b))), nil
}

func main() {
t := textProcessor{new(string)}

l, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatal(err)
}
defer l.Close()
for {
// Wait for connection
conn, err := l.Accept()
if err != nil {
log.Fatal(err)
}

io.Copy(t, conn)
fmt.Print("Echo: ", *t.input)
conn.Close()
}
}

telnet localhost 8080 检查一下,然后输入一些垃圾。

关于go - 即使进程结束也缓存或保留一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45565263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com