From 6e5c657a186f7a14d88e1a3e7374e786dd89812e Mon Sep 17 00:00:00 2001 From: Egor Aristov Date: Wed, 12 Mar 2025 10:12:56 +0300 Subject: [PATCH] some useful improvements for debugging --- cmd/webserver/webserver.go | 1 + frontend/wizard-vue/src/pages/WizardPage.vue | 1 + internal/api/http/handler.go | 8 +++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cmd/webserver/webserver.go b/cmd/webserver/webserver.go index 65227b4..0d68f67 100644 --- a/cmd/webserver/webserver.go +++ b/cmd/webserver/webserver.go @@ -68,6 +68,7 @@ func main() { na, rate.Every(time.Duration(float64(time.Second)*cfg.TaskRateLimitEvery)), cfg.TaskRateLimitBurst, + cfg.Debug, ) apiHandler.SetupRoutes(e.Group("/api/v1")) diff --git a/frontend/wizard-vue/src/pages/WizardPage.vue b/frontend/wizard-vue/src/pages/WizardPage.vue index d24c186..cc0e3e5 100644 --- a/frontend/wizard-vue/src/pages/WizardPage.vue +++ b/frontend/wizard-vue/src/pages/WizardPage.vue @@ -42,6 +42,7 @@ async function generate() { try { resultLink.value = await encodeUrl(store.specs); resultPreset.value = await encodePreset(store.specs); + console.debug(JSON.stringify(store.specs)); } catch (e) { console.log(e); alert(`Encoding error: ${e}`); diff --git a/internal/api/http/handler.go b/internal/api/http/handler.go index a98e28d..9b34509 100644 --- a/internal/api/http/handler.go +++ b/internal/api/http/handler.go @@ -41,9 +41,10 @@ type Handler struct { rateLimitBurst int limits map[string]*rate.Limiter limitsMu sync.RWMutex + debug bool } -func New(wq adapters.WorkQueue, cache adapters.Cache, rateLimit rate.Limit, rateLimitBurst int) *Handler { +func New(wq adapters.WorkQueue, cache adapters.Cache, rateLimit rate.Limit, rateLimitBurst int, debug bool) *Handler { if wq == nil || cache == nil { panic("you fckd up with di again") } @@ -53,6 +54,7 @@ func New(wq adapters.WorkQueue, cache adapters.Cache, rateLimit rate.Limit, rate rateLimit: rateLimit, rateLimitBurst: rateLimitBurst, limits: make(map[string]*rate.Limiter), + debug: debug, } h.validate = validator.New(validator.WithRequiredStructEnabled()) if err := h.validate.RegisterValidation("selector", validators.ValidateSelector); err != nil { @@ -97,6 +99,9 @@ func (h *Handler) handleRender(c echo.Context) error { if cacheLifetime > maxLifetime { cacheLifetime = maxLifetime } + if h.debug { + cacheLifetime = 0 + } timeoutCtx, cancel := context.WithTimeout(context.Background(), taskTimeout) defer cancel() @@ -105,6 +110,7 @@ func (h *Handler) handleRender(c echo.Context) error { if err != nil { return echo.NewHTTPError(500, fmt.Errorf("task marshal error: %v", err)) } + log.Debugf("Encoded task: %s", encodedTask) taskResultBytes, cachedTS, err := h.cache.Get(task.CacheKey()) if err != nil && !errors.Is(err, adapters.ErrKeyNotFound) {