CLI referencia

worker generátorok

add event, add listener, add job és add worker: háttérmunka scaffoldolása a cmd/worker binárishoz.

Négy generátor scaffoldolja a worker oldalt: eventek, listenerek és ütemezett jobok. A new project már tartalmazza a cmd/worker binárist; az add worker a worker-réteget adja hozzá egy olyan projekthez, amiben még nincs.

add event

go tool gpsystem add event <modul> <v>

Létrehozza az internal/modules/<modul>/events/<név>.go-t (egy event struct + EventName()), és a modul első eventjekor bedrótoz egy outbox events.Dispatcher-t a Dependencies-ébe, majd megkonstruálja a cmd/<modul>/main.go-ban és a cmd/worker/main.go-ban is. Idempotens: a második event újrahasználja a dispatchert. Rögzíti az eventet a gpsystem.yaml-ban.

go tool gpsystem add event orders orderPlaced

Utána adj mezőket a generált structhoz, és dobd el egy service-ből a Transactor.WithinTransaction-ön belül (lásd events).

add listener

go tool gpsystem add listener <modul> <event> <v> [--queue <sor>]

Létrehoz egy listener stubot a <modul>-ban, és regisztrálja a listeners/register.go-ban. Az <event> a név, ha a modul saját eventjéről van szó, vagy termelő.név, ha egy másik modul eventjére iratkozol fel.

FlagJelentés
--queueaz asynq sor, amin a listener fut (alapértelmezés: a default sor)
go tool gpsystem add listener orders orderPlaced sendConfirmationEmail --queue emails
go tool gpsystem add listener shipping orders.orderPlaced reserveStock   # modulok közti

Az eventnek már léteznie kell (előbb add event). Minden listener önálló, újrapróbált task: a törzsét idempotensen valósítsd meg.

add job

go tool gpsystem add job <modul> <v> --cron "0 3 * * *"

Létrehoz egy job handler stubot és ütemezi a jobs/register.go-ban. A --cron 5-mezős cron kifejezéseket és asynq descriptorokat (@every 30m, @daily) fogad el.

go tool gpsystem add job orders expireStaleCarts --cron "0 * * * *"

add worker

go tool gpsystem add worker

Hozzáadja a worker-réteget (binary, sorbekötés, listener/job scaffolding) egy olyan projekthez, amiben még nincs: a cmd/worker binárist, minden modul listeners/ és jobs/ alcsomagját, az outbox migrációt és a Valkey/worker konfigurációt. A new project és a new module már bedrótozza ezt neked, tehát az add worker-t akkor veszed elő, ha egy projekt e nélkül lett összeállítva. Ha a compose.yml / .env.example nem tartalmazza az anchorokat, a beillesztendő blokkot kiírja beillesztésre ahelyett, hogy hibázna (ezek a fájlok nem fordulnak).

Mi drótozódik be

GenerátorLétrehozzaBedrótozza (a // gpsystem:* anchoroknál)
add eventevents/<név>.goDispatcher mező a register.go-ban; konstrukciója a cmd/<modul>-ban és cmd/worker-ben
add listenerlisteners/<név>.goevents.Listen(...) a listeners/register.go-ban
add jobjobs/<név>.gosched.Job(...) a jobs/register.go-ban
add workercmd/worker, modulonkénti listeners//jobs/ alcsomag, outbox migrációworker/valkey konfig; minden modul a worker mainbe
Az upgrade templates csak a bemásolt oapi-codegen template-eket szinkronizálja; a worker scaffoldhoz nem nyúl. A worker-réteg meglévő projektbe illesztéséhez az add worker-t használd.
Van egy ötödik, modul-szintű generátor, ami külön oldalon él, mert egy közös kit-erőforrást drótoz be, nem a workert: az add mail egy mail-notifiert (internal/modules/<modul>/mail/) scaffoldol, és a projekt első notifierénél bedrótozza a mail.Mailer-t minden belépési pontba. Egy mail-notifiert jellemzően egy itt generált listenerből hívsz, lásd a contact-email kidolgozott példát.
Copyright © 2026