Golang Go语言中有没有后台服务相关的库推荐?

发布于 1周前 作者 gougou168 来自 Go语言

想实现终端执行程序,选择开启服务,退出程序后进程后台驻留。当要改变或停止服务操作时再执行程序。(像宝塔 BT 的 bt 那样) 问题是程序执行后退出时如何后台驻留?再次执行程序时不再启动新进程?是不是有现成的库可以用?

新手请教,请大佬指路,给几个关键词我去查,感谢!


Golang Go语言中有没有后台服务相关的库推荐?
12 回复

可以直接用 fork 开新的进程处理,关闭进程的话就在子进程监听信号即可

更多关于Golang Go语言中有没有后台服务相关的库推荐?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


你实际需要的可能是一个守护进程,以及一个与它交互的命令行客户端。

supervisor 是不是你需要的?

看看
nps 怎么实现的

推荐 systemd, screen ,前者适合做成服务,后者适合在后台跑脚本啥的

由部署实现,不要放在代码里面

咱有一篇没写完的博文,说了 golang 对 service 提供的支持
https://www.misakas.com/default/register-the-window-service-with-a-go-program/

做一个 rpc 的 cli

在Golang中,确实存在多个与后台服务相关的库,这些库可以帮助开发者高效地构建和管理后台服务。以下是一些推荐的库:

  1. net/http

    • Go语言标准库提供的HTTP服务器,适用于构建基本的Web应用程序或API服务。
    • 简单易用,适合快速原型开发。
  2. Gin

    • 轻量级的Web框架,基于net/http包。
    • 提供了丰富的功能和中间件,如路由处理、中间件支持、模板渲染等。
    • 适用于快速开发高性能的Web应用程序。
  3. Echo

    • 另一个流行的轻量级Web框架,也基于net/http包。
    • 注重性能和路由处理的灵活性,提供了中间件和插件。
    • 适用于构建高并发的Web服务。
  4. go-workers2

    • 强大的后台任务处理库,与Sidekiq兼容。
    • 支持任务重试、自定义中间件、并发控制等功能。
    • 适用于处理各种后台任务,如异步任务处理、数据处理、定时任务等。
  5. Iris

    • 高性能、功能强大的Web框架。
    • 提供了路由、中间件、模板引擎等功能,并支持丰富的插件和扩展。

综上所述,这些库各有特点,开发者可以根据项目的具体需求和性能要求选择合适的库来构建和管理Golang后台服务。

回到顶部