tkcashgame_v4/app/eonline/internal/biz/queue.go

35 lines
783 B
Go

package biz
import (
"context"
"fmt"
"github.com/tx7do/kratos-transport/broker"
)
type ExampleStruct struct {
Name string `json:"name"`
ID int `json:"id"`
}
func ExampleCreator() broker.Any { return &ExampleStruct{} }
type ExmapleHandler func(_ context.Context, topic string, headers broker.Headers, msg *ExampleStruct) error
func RegisterExampleHandler(fnc ExmapleHandler) broker.Handler {
return func(ctx context.Context, event broker.Event) error {
if event.Error() != nil {
return event.Error()
}
msg, ok := event.Message().Body.(*ExampleStruct)
if !ok {
return fmt.Errorf("[Kafka] unsupported type: %T", event.Message().Body)
}
if err := fnc(ctx, event.Topic(), event.Message().Headers, msg); err != nil {
return err
}
return nil
}
}