aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/taskqueue/worker_server.go
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-08-08 19:30:20 +0900
committernsfisis <nsfisis@gmail.com>2024-08-08 19:30:20 +0900
commit9e5500269746d3826382a6dec78f0e82cfda0d42 (patch)
treed8f15d4081132d6cfff3ea3b02f197b2d6bad700 /backend/taskqueue/worker_server.go
parent401a28944fc0408811aedadd1c3104e2e2d4d7fe (diff)
parent113c83b19acc58fbd46e8acdac67ff1a112d0d8c (diff)
downloadphperkaigi-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.go34
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
+}