46 lines
672 B
Go
46 lines
672 B
Go
package runnergroup_test
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/txthinking/runnergroup"
|
|
)
|
|
|
|
func Example() {
|
|
g := runnergroup.New()
|
|
|
|
s := &http.Server{
|
|
Addr: ":9991",
|
|
}
|
|
g.Add(&runnergroup.Runner{
|
|
Start: func() error {
|
|
return s.ListenAndServe()
|
|
},
|
|
Stop: func() error {
|
|
return s.Shutdown(context.Background())
|
|
},
|
|
})
|
|
|
|
s1 := &http.Server{
|
|
Addr: ":9992",
|
|
}
|
|
g.Add(&runnergroup.Runner{
|
|
Start: func() error {
|
|
return s1.ListenAndServe()
|
|
},
|
|
Stop: func() error {
|
|
return s1.Shutdown(context.Background())
|
|
},
|
|
})
|
|
|
|
go func() {
|
|
time.Sleep(5 * time.Second)
|
|
log.Println(g.Done())
|
|
}()
|
|
log.Println(g.Wait())
|
|
// Output:
|
|
}
|