tx7do / kratos-transport

kratos transport layer extension
MIT License
340 stars 92 forks source link

asynq 怎么把service 注入到 server, 如果执行到handler 怎么用service、data 的方法? #90

Closed zhouyg closed 3 months ago

zhouyg commented 3 months ago

怎么把service 注入到 server, 如果执行到handler 怎么用service、data 的方法? func TestTaskSubscribe(t *testing.T) { interrupt := make(chan os.Signal, 1) signal.Notify(interrupt, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)

ctx := context.Background()
var err error

srv := NewServer(
    WithAddress(localRedisAddr),
    WithRedisPassword("123456"),
)

err = RegisterSubscriber(srv, testTask1, handleTask1)
assert.Nil(t, err)

err = RegisterSubscriber(srv, testDelayTask, handleDelayTask)
assert.Nil(t, err)

err = RegisterSubscriber(srv, testPeriodicTask, handlePeriodicTask)
assert.Nil(t, err)

if err = srv.Start(ctx); err != nil {
    panic(err)
}

defer func() {
    if err = srv.Stop(ctx); err != nil {
        t.Errorf("expected nil got %v", err)
    }
}()

<-interrupt

}

tx7do commented 3 months ago

具体请看示例:https://github.com/tx7do/kratos-monolithic-demo/blob/main/backend/app/admin/service/internal/service/task.go