是这样的,我们现在在开发一个go项目,这是一个rpc服务。由于go项目在上线后其实就是一个可执行的二进制文件,所以我的理解是上线后会有一个进程在生产服务器上,等待着rpc请求并处理。
但是我需要在这一个项目下开发一个定时任务,每一个小时执行一次。那么我理解就是这个项目上线后应该有两个进程,一个用于接收rpc请求,一个执行定时任务。那么我该怎么做才能有两个进程呢?我的理解go项目的入口只有一个就是main包的main函数。
还望有在项目中写过go的定时任务的大佬指点一下
要这么做不是不可以, main 函数中启动两个goroutine, 一个goroutine跑rpc服务, 一个goroutine跑定时任务服务.
定时任务也有现成的库:github.com/robfig/cron.
当然,如果不是特殊情况的话,最好分开,编译成两个二进制文件进行部署.
func main() { go func() { // 启动rpc服务的逻辑 }() go func() { // 启动定时任务服务的逻辑 }() select{} }
548k questions
547k answers
4 comments
86.3k users