问答

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

作者:admin 2021-05-07 我要评论

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

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

是这样的,我们现在在开发一个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{}
}
###

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • go工程可以生成多个进程吗

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

  • base64 的pdf数据 如何转出base64的img

    base64 的pdf数据 如何转出base64的img

  • ng-zorro-antd 树选择组件  设置选中节

    ng-zorro-antd 树选择组件 设置选中节

  • 小程序多层数组模块,每个模块底部可点

    小程序多层数组模块,每个模块底部可点

腾讯云代理商
海外云服务器