英文:
Restart Go's net/http server on file-change like Django
问题
我正在尝试使用Martini,它在Go的基本net/http
包上添加了一些很好的功能。
我想知道,像Django一样,我如何让服务器在源文件更改时自动重启?我知道如何监视文件,但我不确定如何在同一进程中重新触发服务器。
我猜想要再次触发http.ListenAndServe
,但我觉得这可能与已经运行的实例不兼容。
我需要生成一个子进程/守护进程来使其工作吗?
英文:
I'm trying out Martini, which adds some nice functionality upon Go's basic net/http
package.
I was wondering tho. How can I, like Django does too, let the server restart itself on source-file changes? I know how to monitor a file, but I'm not sure how to retrigger the Server within the same process.
I'm guessing to trigger http.ListenAndServe
again, but I have a feeling it doesn't go well with instance already running.
Do I need to spawn a subprocess/daemon to get this working?
答案1
得分: 14
也许你需要 gin?
由 Martini 的创建者制作。
答案2
得分: 13
你可以试试看
Fresh 是一个命令行工具,每当你保存一个 Go 或模板文件时,它会构建并重新启动你的 Web 应用程序。
英文:
You may give it a try
Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file.
答案3
得分: 11
你需要使用一个可以监视目录/文件并运行命令的外部工具。我建议使用reflex,它本身就是用Go编写的。
(修改README中的示例):
# 每当.go文件发生更改时重新运行make命令
reflex -r '\.go$' ./mymartiniapp
英文:
You'll need to use an external tool that can watch a directory/files and run a command. I'd recommend reflex which is written in Go itself:
(modifying the example in the README):
# Rerun make whenever a .go file changes
reflex -r '\.go$' ./mymartiniapp
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论