En aller un cadre ne peut pas vraiment vous limiter. Prenons l'exemple de l'armature de martini.
Voici le premier échantillon de leur page GitHub:
package main
import "github.com/go-martini/martini"
func main() {
m := martini.Classic()
m.Get("/", func() string {
return "Hello world!"
})
m.Run()
}
Avant d'exécuter m.Run()
vous pouvez commencer tout travail cli vous voulez. Tout ce que vous avez à faire est de commencer dans une autre goroutine:
package main
import "github.com/go-martini/martini"
func main() {
// start some function doing background stuff
go someCliFunc()
// initiate a struct and start a job in the background
go func(){
cli := MyPackage.SomeCli{}
cli.Start()
}()
m := martini.Classic()
m.Get("/", func() string {
return "Hello world!"
})
m.Run()
}
La fonction en train de faire les choses de fond pourrait avoir une structure comme celle-ci:
func someCliFunc() {
// do some initial stuff
defer func() {
// do some stuff on exit
}()
// start the loop
for {
// do stuff regularly
// make sure the loop does not use the entire cpu
time.Sleep(5*time.Second)
}
}
Ne pas utiliser un cadre. – Flimzy
Deuxièmement ce que @Flimzy a dit. Il suffit d'écrire un logiciel au lieu de chercher des cadres. – Adrian
merci, parce que j'ai besoin de terminer un travail rapidement, donc je choisis d'utiliser un cadre, il peut accélérer mon développement. Je suis d'accord avec cela ne laissez pas le cadre vous limiter – Poisoner