From 08ae228c45745372784017fe694d61d9ed0e2981 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 20 Feb 2026 22:19:42 +0900 Subject: feat(admin): integrate asynqmon web UI for task queue monitoring Mount asynqmon HTTP handler under admin/queue with existing session cookie and admin middleware authentication. Co-Authored-By: Claude Opus 4.6 --- backend/main.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'backend/main.go') diff --git a/backend/main.go b/backend/main.go index e74a62f..2825b84 100644 --- a/backend/main.go +++ b/backend/main.go @@ -8,6 +8,8 @@ import ( "os" "time" + "github.com/hibiken/asynq" + "github.com/hibiken/asynqmon" "github.com/jackc/pgx/v5/pgxpool" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" @@ -111,6 +113,13 @@ func main() { adminGroup.Use(api.SessionCookieMiddleware(queries)) adminHandler.RegisterHandlers(adminGroup) + queueMonitor := asynqmon.New(asynqmon.Options{ + RootPath: conf.BasePath + "admin/queue", + RedisConnOpt: asynq.RedisClientOpt{Addr: "task-db:6379"}, + }) + adminGroup.Any("/queue/*", echo.WrapHandler(queueMonitor)) + adminGroup.Any("/queue", echo.WrapHandler(queueMonitor)) + if conf.IsLocal { filesGroup := e.Group(conf.BasePath + "files") filesGroup.Use(middleware.StaticWithConfig(middleware.StaticConfig{ -- cgit v1.3.1