diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-08-08 19:30:20 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-08-08 19:30:20 +0900 |
| commit | 9e5500269746d3826382a6dec78f0e82cfda0d42 (patch) | |
| tree | d8f15d4081132d6cfff3ea3b02f197b2d6bad700 /backend/taskqueue/worker_server.go | |
| parent | 401a28944fc0408811aedadd1c3104e2e2d4d7fe (diff) | |
| parent | 113c83b19acc58fbd46e8acdac67ff1a112d0d8c (diff) | |
| download | phperkaigi-2025-albatross-9e5500269746d3826382a6dec78f0e82cfda0d42.tar.gz phperkaigi-2025-albatross-9e5500269746d3826382a6dec78f0e82cfda0d42.tar.zst phperkaigi-2025-albatross-9e5500269746d3826382a6dec78f0e82cfda0d42.zip | |
Merge branch 'feat/taskqueue'
Diffstat (limited to 'backend/taskqueue/worker_server.go')
| -rw-r--r-- | backend/taskqueue/worker_server.go | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/backend/taskqueue/worker_server.go b/backend/taskqueue/worker_server.go index 485d6d3..317f61c 100644 --- a/backend/taskqueue/worker_server.go +++ b/backend/taskqueue/worker_server.go @@ -7,27 +7,35 @@ import ( ) type WorkerServer struct { - server *asynq.Server - queries *db.Queries - c chan string + server *asynq.Server + processor *processorWrapper } -func NewWorkerServer(redisAddr string, queries *db.Queries, c chan string) *WorkerServer { +func NewWorkerServer(redisAddr string, queries *db.Queries) *WorkerServer { + server := asynq.NewServer( + asynq.RedisClientOpt{ + Addr: redisAddr, + }, + asynq.Config{}, + ) + processor := newProcessorWrapper(newProcessor(queries)) return &WorkerServer{ - server: asynq.NewServer( - asynq.RedisClientOpt{ - Addr: redisAddr, - }, - asynq.Config{}, - ), - queries: queries, - c: c, + server: server, + processor: processor, } } func (s *WorkerServer) Run() error { mux := asynq.NewServeMux() - mux.Handle(TaskTypeExec, NewExecProcessor(s.queries, s.c)) + + mux.HandleFunc(string(TaskTypeCreateSubmissionRecord), s.processor.processTaskCreateSubmissionRecord) + mux.HandleFunc(string(TaskTypeCompileSwiftToWasm), s.processor.processTaskCompileSwiftToWasm) + mux.HandleFunc(string(TaskTypeCompileWasmToNativeExecutable), s.processor.processTaskCompileWasmToNativeExecutable) + mux.HandleFunc(string(TaskTypeRunTestcase), s.processor.processTaskRunTestcase) return s.server.Run(mux) } + +func (s *WorkerServer) Results() chan TaskResult { + return s.processor.results +} |
