go工程可以生成多个进程吗

是这样的,我们现在在开发一个go项目,这是一个rpc服务。由于go项目在上线后其实就是一个可执行的二进制文件,所以我的理解是上线后会有一个进程在生产服务器上,等待着rpc请求并处理。

但是我需要在这一个项目下开发一个定时任务,每一个小时执行一次。那么我理解就是这个项目上线后应该有两个进程,一个用于接收rpc请求,一个执行定时任务。那么我该怎么做才能有两个进程呢?我的理解go项目的入口只有一个就是main包的main函数。

还望有在项目中写过go的定时任务的大佬指点一下

阅读 3.2k
2 个回答

要这么做不是不可以, main 函数中启动两个goroutine, 一个goroutine跑rpc服务, 一个goroutine跑定时任务服务.

定时任务也有现成的库:github.com/robfig/cron.

当然,如果不是特殊情况的话,最好分开,编译成两个二进制文件进行部署.

func main() {
    go func() {
        // 启动rpc服务的逻辑
    }()
    
    go func() {
        // 启动定时任务服务的逻辑
    }()
    
    select{}
}

定时任务都是通过Linux下的 crontab 来做的,不要用语言来实现.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题