Go 在后台运行并收集数据的通道

Go 在后台运行并收集数据的通道,go,Go,我尝试定期在后台运行一些函数,因为我也在为一个Web服务提供服务 import ("strings") func run (cmd string, c chan []byte) { parts := strings.Fields(cmd) head := parts[0] parts = parts[1:len(parts)] out, err := exec.Command(head, parts...).Output() if err !=n

我尝试定期在后台运行一些函数,因为我也在为一个Web服务提供服务

import ("strings")
func run (cmd string, c chan []byte) {
    parts := strings.Fields(cmd)
    head := parts[0]
    parts = parts[1:len(parts)]

    out, err := exec.Command(head, parts...).Output()
        if err !=nil {
            log.Fatal(err)
        }
    c <-out
}

func main() {
      c:=make(chan []byte)
      go run ("date",c)
      output :=string(<-c)
}
导入(“字符串”)
func run(cmd字符串,c chan[]字节){
部分:=字符串.字段(cmd)
头:=零件[0]
零件=零件[1:len(零件)]
out,err:=exec.Command(head,parts…).Output()
如果错误!=零{
log.Fatal(错误)
}

c您应该首先找到一些库或编写某种实用程序,使您能够连续运行任务,而实际上您的代码并没有这样做

例如:

这只是一个例子,我不知道这个库是否好

然后,您应该选择任务和web服务之间的接口

您可以一次运行所有任务,并使用通道,每个任务一个,以与go例程通信

或者,您可以使用日常写入的数据以及web服务读取和处理的数据编写文本文件

还有其他几种方法或解决方案,这是我现在能想到的最简单的方法


希望这有帮助。

要同时运行,请在单独的goroutine中启动它们--您在这里问的到底是什么?我可以在单独的go例程中启动它们。我如何运行几个不同的go例程,并为在同一过程中运行的Web服务收集它们的结果?我要求最佳实践这非常有帮助。我正在尝试查找some设计模式。希望尽可能紧凑。希望避免数据库和中间文件。