diff options
Diffstat (limited to 'backend/taskqueue/worker_server.go')
| -rw-r--r-- | backend/taskqueue/worker_server.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/backend/taskqueue/worker_server.go b/backend/taskqueue/worker_server.go new file mode 100644 index 0000000..485d6d3 --- /dev/null +++ b/backend/taskqueue/worker_server.go @@ -0,0 +1,33 @@ +package taskqueue + +import ( + "github.com/hibiken/asynq" + + "github.com/nsfisis/iosdc-japan-2024-albatross/backend/db" +) + +type WorkerServer struct { + server *asynq.Server + queries *db.Queries + c chan string +} + +func NewWorkerServer(redisAddr string, queries *db.Queries, c chan string) *WorkerServer { + return &WorkerServer{ + server: asynq.NewServer( + asynq.RedisClientOpt{ + Addr: redisAddr, + }, + asynq.Config{}, + ), + queries: queries, + c: c, + } +} + +func (s *WorkerServer) Run() error { + mux := asynq.NewServeMux() + mux.Handle(TaskTypeExec, NewExecProcessor(s.queries, s.c)) + + return s.server.Run(mux) +} |
