58 lines
1.2 KiB
Go
58 lines
1.2 KiB
Go
package main
|
||
|
||
import (
|
||
"context"
|
||
"fmt"
|
||
"framework1/framework"
|
||
"time"
|
||
)
|
||
|
||
func FooControllerHandler(ctx *framework.Context) error {
|
||
finish := make(chan struct{}, 1)
|
||
panicChan := make(chan interface{}, 1)
|
||
|
||
durationCtx, cancel := context.WithTimeout(ctx.BaseContext(), 2*time.Second) // 这里记得当所有事情处理结束后调用 cancel,告知 durationCtx 的后续 Context 结束
|
||
defer cancel()
|
||
|
||
go func() {
|
||
time.Sleep(1 * time.Second)
|
||
ctx.Json(200, map[string]interface{}{"code": 0})
|
||
finish <- struct{}{}
|
||
}()
|
||
|
||
select {
|
||
case <-finish:
|
||
fmt.Println("调用结束了")
|
||
case <-durationCtx.Done():
|
||
ctx.Json(500, "time out")
|
||
case <-panicChan:
|
||
ctx.Json(500, "panic")
|
||
}
|
||
return nil
|
||
}
|
||
|
||
func UserLoginController(c *framework.Context) error {
|
||
c.Json(200, "ok UserLoginController")
|
||
return nil
|
||
}
|
||
|
||
func SubjectDelController(c *framework.Context) error {
|
||
c.Json(200, "ok SubjectDelController")
|
||
return nil
|
||
}
|
||
|
||
func SubjectUpdateController(c *framework.Context) error {
|
||
c.Json(200, "ok SubjectUpdateController")
|
||
return nil
|
||
}
|
||
|
||
func SubjectGetController(c *framework.Context) error {
|
||
c.Json(200, "ok SubjectGetController")
|
||
return nil
|
||
}
|
||
|
||
func SubjectListController(c *framework.Context) error {
|
||
c.Json(200, "ok SubjectListController")
|
||
return nil
|
||
}
|