2022-10-23 17:29:35 +08:00
|
|
|
package consumer
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2023-07-14 21:47:11 +08:00
|
|
|
"git.0x7f.app/WOJ/woj-server/internal/global"
|
|
|
|
"git.0x7f.app/WOJ/woj-server/internal/service/problem"
|
|
|
|
"git.0x7f.app/WOJ/woj-server/internal/service/status"
|
|
|
|
"git.0x7f.app/WOJ/woj-server/internal/service/task"
|
2022-10-23 17:29:35 +08:00
|
|
|
"github.com/hibiken/asynq"
|
|
|
|
"go.uber.org/zap"
|
|
|
|
)
|
|
|
|
|
|
|
|
var _ Handler = (*handler)(nil)
|
|
|
|
|
|
|
|
type Handler interface {
|
|
|
|
ProblemUpdate(_ context.Context, t *asynq.Task) error
|
|
|
|
SubmitUpdate(_ context.Context, t *asynq.Task) error
|
|
|
|
}
|
|
|
|
|
|
|
|
type handler struct {
|
|
|
|
log *zap.Logger
|
|
|
|
problemService problem.Service
|
|
|
|
statusService status.Service
|
|
|
|
taskService task.Service
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewConsumer(g *global.Global) Handler {
|
|
|
|
hnd := &handler{
|
|
|
|
log: g.Log,
|
|
|
|
problemService: problem.NewService(g),
|
|
|
|
statusService: status.NewService(g),
|
|
|
|
taskService: task.NewService(g),
|
|
|
|
}
|
|
|
|
|
|
|
|
return hnd
|
|
|
|
}
|