[{"data":1,"prerenderedAt":1111},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-cli-worker-generators":442,"-hu-cli-worker-generators-surround":1106},[4,45,60,81,112,129,146,173,197,213,242,280,357,373,385,404,430],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F1.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F1.getting-started\u002F2.coming-from-laravel","i-lucide-arrow-right-left",{"title":21,"path":22,"stem":23,"icon":19},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F1.getting-started\u002F3.coming-from-symfony",{"title":25,"path":26,"stem":27,"icon":28},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F1.getting-started\u002F4.installation","i-lucide-download",{"title":30,"path":31,"stem":32,"icon":33},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F1.getting-started\u002F5.first-module","i-lucide-package-plus",{"title":35,"path":36,"stem":37,"icon":38},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F1.getting-started\u002F6.project-structure","i-lucide-folder-tree",{"title":40,"path":41,"stem":42,"icon":43},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F1.getting-started\u002F7.sample-app","i-lucide-shopping-cart",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"queue","i-lucide-layers","\u002Fhu\u002Fqueue","hu\u002F10.queue",[51,56],{"title":52,"path":53,"stem":54,"icon":55},"Áttekintés","\u002Fhu\u002Fqueue\u002Foverview","hu\u002F10.queue\u002F1.overview","i-lucide-list-ordered",{"title":57,"path":58,"stem":59,"icon":47},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F10.queue\u002F2.tasks",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F11.events",[66,71,76],{"title":67,"path":68,"stem":69,"icon":70},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F11.events\u002F1.overview","i-lucide-radio",{"title":72,"path":73,"stem":74,"icon":75},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F11.events\u002F2.outbox","i-lucide-inbox",{"title":77,"path":78,"stem":79,"icon":80},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F11.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F12.auth",[87,92,97,102,107],{"title":88,"path":89,"stem":90,"icon":91},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F12.auth\u002F1.overview","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F12.auth\u002F2.rbac","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F12.auth\u002F3.policy","i-lucide-gavel",{"title":103,"path":104,"stem":105,"icon":106},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F12.auth\u002F4.standalone","i-lucide-plug",{"title":108,"path":109,"stem":110,"icon":111},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F12.auth\u002F5.social-standalone","i-lucide-log-in",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[118,121,125],{"title":52,"path":119,"stem":120,"icon":114},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":122,"path":123,"stem":124,"icon":114},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":126,"path":127,"stem":128,"icon":114},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[135,138,142],{"title":52,"path":136,"stem":137,"icon":131},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":139,"path":140,"stem":141,"icon":131},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":143,"path":144,"stem":145,"icon":131},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F15.storage",[152,155,159,163,168],{"title":52,"path":153,"stem":154,"icon":148},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F15.storage\u002F1.overview",{"title":156,"path":157,"stem":158},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F15.storage\u002F2.disk-api",{"title":160,"path":161,"stem":162,"icon":148},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F15.storage\u002F3.local",{"title":164,"path":165,"stem":166,"icon":167},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F15.storage\u002F4.s3","i-lucide-cloud",{"title":169,"path":170,"stem":171,"icon":172},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F15.storage\u002F5.testing","i-lucide-flask-conical",{"title":174,"icon":175,"path":176,"stem":177,"children":178,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F16.telemetry",[179,182,187,192],{"title":52,"path":180,"stem":181,"icon":175},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F16.telemetry\u002F1.overview",{"title":183,"path":184,"stem":185,"icon":186},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F16.telemetry\u002F2.logging","i-lucide-scroll-text",{"title":188,"path":189,"stem":190,"icon":191},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F16.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":193,"path":194,"stem":195,"icon":196},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F16.telemetry\u002F4.sentry","i-lucide-bug",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F17.reference",[203,208],{"title":204,"path":205,"stem":206,"icon":207},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F17.reference\u002F1.configuration","i-lucide-settings",{"title":209,"path":210,"stem":211,"icon":212},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F17.reference\u002F2.dependencies","i-lucide-package",{"title":214,"icon":215,"path":216,"stem":217,"children":218,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F2.concepts",[219,223,228,232,237],{"title":220,"path":221,"stem":222,"icon":47},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F2.concepts\u002F1.architecture",{"title":224,"path":225,"stem":226,"icon":227},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F2.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":204,"path":229,"stem":230,"icon":231},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F2.concepts\u002F3.configuration","i-lucide-settings-2",{"title":233,"path":234,"stem":235,"icon":236},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F2.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":238,"path":239,"stem":240,"icon":241},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F2.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":243,"icon":244,"path":245,"stem":246,"children":247,"page":44},"A kit","i-lucide-box","\u002Fhu\u002Fkit","hu\u002F3.kit",[248,252,257,262,267,271,276],{"title":249,"path":250,"stem":251,"icon":244},"A kit áttekintése","\u002Fhu\u002Fkit\u002Foverview","hu\u002F3.kit\u002F1.overview",{"title":253,"path":254,"stem":255,"icon":256},"Alkalmazás-életciklus","\u002Fhu\u002Fkit\u002Fapp","hu\u002F3.kit\u002F2.app","i-lucide-power",{"title":258,"path":259,"stem":260,"icon":261},"Szerver","\u002Fhu\u002Fkit\u002Fserver","hu\u002F3.kit\u002F3.server","i-lucide-server",{"title":263,"path":264,"stem":265,"icon":266},"Worker","\u002Fhu\u002Fkit\u002Fworker","hu\u002F3.kit\u002F4.worker","i-lucide-cog",{"title":268,"path":269,"stem":270,"icon":70},"Realtime","\u002Fhu\u002Fkit\u002Frealtime","hu\u002F3.kit\u002F5.realtime",{"title":272,"path":273,"stem":274,"icon":275},"Migrációk","\u002Fhu\u002Fkit\u002Fmigrations","hu\u002F3.kit\u002F6.migrations","i-lucide-file-stack",{"title":277,"path":278,"stem":279,"icon":111},"Social login","\u002Fhu\u002Fkit\u002Fsocial-login","hu\u002F3.kit\u002F7.social-login",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F4.cli",[286,289,294,299,304,309,314,319,324,329,334,338,343,348,352],{"title":52,"path":287,"stem":288,"icon":282},"\u002Fhu\u002Fcli\u002Foverview","hu\u002F4.cli\u002F1.overview",{"title":290,"path":291,"stem":292,"icon":293},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F4.cli\u002F10.add-db","i-lucide-database-zap",{"title":295,"path":296,"stem":297,"icon":298},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F4.cli\u002F11.add-compose","i-lucide-container",{"title":300,"path":301,"stem":302,"icon":303},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F4.cli\u002F12.add-mail","i-lucide-mail-plus",{"title":305,"path":306,"stem":307,"icon":308},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F4.cli\u002F13.add-notification","i-lucide-bell-plus",{"title":310,"path":311,"stem":312,"icon":313},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F4.cli\u002F14.add-realtime","i-lucide-radio-tower",{"title":315,"path":316,"stem":317,"icon":318},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F4.cli\u002F15.add-seeder","i-lucide-sprout",{"title":320,"path":321,"stem":322,"icon":323},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F4.cli\u002F2.new-project","i-lucide-folder-plus",{"title":325,"path":326,"stem":327,"icon":328},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F4.cli\u002F3.new-module","i-lucide-blocks",{"title":330,"path":331,"stem":332,"icon":333},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F4.cli\u002F4.add-surface","i-lucide-layers-2",{"title":335,"path":336,"stem":337,"icon":244},"add core","\u002Fhu\u002Fcli\u002Fadd-core","hu\u002F4.cli\u002F5.add-core",{"title":339,"path":340,"stem":341,"icon":342},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F4.cli\u002F6.add-handler","i-lucide-webhook",{"title":344,"path":345,"stem":346,"icon":347},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F4.cli\u002F7.new-migration","i-lucide-file-plus",{"title":349,"path":350,"stem":351,"icon":266},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F4.cli\u002F8.worker-generators",{"title":353,"path":354,"stem":355,"icon":356},"upgrade templates","\u002Fhu\u002Fcli\u002Fupgrade-templates","hu\u002F4.cli\u002F9.upgrade-templates","i-lucide-refresh-cw",{"title":358,"icon":227,"path":359,"stem":360,"children":361,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F5.errs",[362,365,369],{"title":52,"path":363,"stem":364,"icon":227},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F5.errs\u002F1.overview",{"title":366,"path":367,"stem":368},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F5.errs\u002F2.api",{"title":370,"path":371,"stem":372,"icon":227},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F5.errs\u002F3.integration",{"title":374,"icon":231,"path":375,"stem":376,"children":377,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F6.envconf",[378,381],{"title":52,"path":379,"stem":380,"icon":231},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F6.envconf\u002F1.overview",{"title":382,"path":383,"stem":384},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F6.envconf\u002F2.recipes",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F7.httperr",[391,394,399],{"title":52,"path":392,"stem":393,"icon":387},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F7.httperr\u002F1.overview",{"title":395,"path":396,"stem":397,"icon":398},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F7.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":400,"path":401,"stem":402,"icon":403},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F7.httperr\u002F3.validation","i-lucide-badge-check",{"title":405,"icon":406,"path":407,"stem":408,"children":409,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F8.dbx",[410,413,417,421,426],{"title":52,"path":411,"stem":412,"icon":406},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F8.dbx\u002F1.overview",{"title":414,"path":415,"stem":416,"icon":106},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F8.dbx\u002F2.pg",{"title":418,"path":419,"stem":420,"icon":47},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F8.dbx\u002F3.bunx",{"title":422,"path":423,"stem":424,"icon":425},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F8.dbx\u002F4.transactions","i-lucide-git-merge",{"title":427,"path":428,"stem":429,"icon":318},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F8.dbx\u002F5.seed",{"title":431,"icon":55,"path":432,"stem":433,"children":434,"page":44},"paginate","\u002Fhu\u002Fpaginate","hu\u002F9.paginate",[435,438],{"title":52,"path":436,"stem":437,"icon":55},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F9.paginate\u002F1.overview",{"title":439,"path":440,"stem":441,"icon":19},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F9.paginate\u002F2.cursor",{"id":443,"title":349,"body":444,"description":1099,"extension":1100,"links":1101,"meta":1102,"navigation":1103,"path":350,"seo":1104,"stem":351,"__hash__":1105},"docs_hu\u002Fhu\u002F4.cli\u002F8.worker-generators.md",{"type":445,"value":446,"toc":1092},"minimark",[447,476,481,537,573,596,606,610,671,694,728,785,791,795,841,860,891,894,912,943,947,1053,1067,1088],[448,449,450,451,455,456,459,460,463,464,467,468,471,472,475],"p",{},"Négy generátor scaffoldolja a ",[452,453,454],"a",{"href":264},"worker"," oldalt: ",[452,457,458],{"href":68},"eventek",", listenerek és ",[452,461,462],{"href":78},"ütemezett jobok",". A ",[465,466,320],"code",{}," már tartalmazza a ",[465,469,470],{},"cmd\u002Fworker"," binárist; az ",[465,473,474],{},"add worker"," a worker-réteget adja hozzá egy olyan projekthez, amiben még nincs.",[477,478,480],"h2",{"id":479},"add-event","add event",[482,483,488],"pre",{"className":484,"code":485,"language":486,"meta":487,"style":487},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go tool gpsystem add event \u003Cmodul> \u003Cnév>\n","sh","",[465,489,490],{"__ignoreMap":487},[491,492,495,499,503,506,509,512,516,519,523,526,528,531,534],"span",{"class":493,"line":494},"line",1,[491,496,498],{"class":497},"sBMFI","go",[491,500,502],{"class":501},"sfazB"," tool",[491,504,505],{"class":501}," gpsystem",[491,507,508],{"class":501}," add",[491,510,511],{"class":501}," event",[491,513,515],{"class":514},"sMK4o"," \u003C",[491,517,518],{"class":501},"modu",[491,520,522],{"class":521},"sTEyZ","l",[491,524,525],{"class":514},">",[491,527,515],{"class":514},[491,529,530],{"class":501},"né",[491,532,533],{"class":521},"v",[491,535,536],{"class":514},">\n",[448,538,539,540,543,544,547,548,552,553,556,557,560,561,564,565,568,569,572],{},"Létrehozza az ",[465,541,542],{},"internal\u002Fmodules\u002F\u003Cmodul>\u002Fevents\u002F\u003Cnév>.go","-t (egy event struct + ",[465,545,546],{},"EventName()","), és a modul ",[549,550,551],"strong",{},"első"," eventjekor bedrótoz egy outbox ",[465,554,555],{},"events.Dispatcher","-t a ",[465,558,559],{},"Dependencies","-ébe, majd megkonstruálja a ",[465,562,563],{},"cmd\u002F\u003Cmodul>\u002Fmain.go","-ban és a ",[465,566,567],{},"cmd\u002Fworker\u002Fmain.go","-ban is. Idempotens: a második event újrahasználja a dispatchert. Rögzíti az eventet a ",[465,570,571],{},"gpsystem.yaml","-ban.",[482,574,576],{"className":484,"code":575,"language":486,"meta":487,"style":487},"go tool gpsystem add event orders orderPlaced\n",[465,577,578],{"__ignoreMap":487},[491,579,580,582,584,586,588,590,593],{"class":493,"line":494},[491,581,498],{"class":497},[491,583,502],{"class":501},[491,585,505],{"class":501},[491,587,508],{"class":501},[491,589,511],{"class":501},[491,591,592],{"class":501}," orders",[491,594,595],{"class":501}," orderPlaced\n",[448,597,598,599,602,603,605],{},"Utána adj mezőket a generált structhoz, és dobd el egy service-ből a ",[465,600,601],{},"Transactor.WithinTransaction","-ön belül (lásd ",[452,604,61],{"href":68},").",[477,607,609],{"id":608},"add-listener","add listener",[482,611,613],{"className":484,"code":612,"language":486,"meta":487,"style":487},"go tool gpsystem add listener \u003Cmodul> \u003Cevent> \u003Cnév> [--queue \u003Csor>]\n",[465,614,615],{"__ignoreMap":487},[491,616,617,619,621,623,625,628,630,632,634,636,638,641,644,646,648,650,652,654,657,660,663,666,668],{"class":493,"line":494},[491,618,498],{"class":497},[491,620,502],{"class":501},[491,622,505],{"class":501},[491,624,508],{"class":501},[491,626,627],{"class":501}," listener",[491,629,515],{"class":514},[491,631,518],{"class":501},[491,633,522],{"class":521},[491,635,525],{"class":514},[491,637,515],{"class":514},[491,639,640],{"class":501},"even",[491,642,643],{"class":521},"t",[491,645,525],{"class":514},[491,647,515],{"class":514},[491,649,530],{"class":501},[491,651,533],{"class":521},[491,653,525],{"class":514},[491,655,656],{"class":521}," [--queue ",[491,658,659],{"class":514},"\u003C",[491,661,662],{"class":501},"so",[491,664,665],{"class":521},"r",[491,667,525],{"class":514},[491,669,670],{"class":501},"]\n",[448,672,673,674,677,678,681,682,685,686,689,690,693],{},"Létrehoz egy listener stubot a ",[465,675,676],{},"\u003Cmodul>","-ban, és regisztrálja a ",[465,679,680],{},"listeners\u002Fregister.go","-ban. Az ",[465,683,684],{},"\u003Cevent>"," a ",[465,687,688],{},"név",", ha a modul saját eventjéről van szó, vagy ",[465,691,692],{},"termelő.név",", ha egy másik modul eventjére iratkozol fel.",[695,696,697,710],"table",{},[698,699,700],"thead",{},[701,702,703,707],"tr",{},[704,705,706],"th",{},"Flag",[704,708,709],{},"Jelentés",[711,712,713],"tbody",{},[701,714,715,721],{},[716,717,718],"td",{},[465,719,720],{},"--queue",[716,722,723,724,727],{},"az asynq sor, amin a listener fut (alapértelmezés: a ",[465,725,726],{},"default"," sor)",[482,729,731],{"className":484,"code":730,"language":486,"meta":487,"style":487},"go tool gpsystem add listener orders orderPlaced sendConfirmationEmail --queue emails\ngo tool gpsystem add listener shipping orders.orderPlaced reserveStock   # modulok közti\n",[465,732,733,759],{"__ignoreMap":487},[491,734,735,737,739,741,743,745,747,750,753,756],{"class":493,"line":494},[491,736,498],{"class":497},[491,738,502],{"class":501},[491,740,505],{"class":501},[491,742,508],{"class":501},[491,744,627],{"class":501},[491,746,592],{"class":501},[491,748,749],{"class":501}," orderPlaced",[491,751,752],{"class":501}," sendConfirmationEmail",[491,754,755],{"class":501}," --queue",[491,757,758],{"class":501}," emails\n",[491,760,762,764,766,768,770,772,775,778,781],{"class":493,"line":761},2,[491,763,498],{"class":497},[491,765,502],{"class":501},[491,767,505],{"class":501},[491,769,508],{"class":501},[491,771,627],{"class":501},[491,773,774],{"class":501}," shipping",[491,776,777],{"class":501}," orders.orderPlaced",[491,779,780],{"class":501}," reserveStock",[491,782,784],{"class":783},"sHwdD","   # modulok közti\n",[448,786,787,788,790],{},"Az eventnek már léteznie kell (előbb ",[465,789,480],{},"). Minden listener önálló, újrapróbált task: a törzsét idempotensen valósítsd meg.",[477,792,794],{"id":793},"add-job","add job",[482,796,798],{"className":484,"code":797,"language":486,"meta":487,"style":487},"go tool gpsystem add job \u003Cmodul> \u003Cnév> --cron \"0 3 * * *\"\n",[465,799,800],{"__ignoreMap":487},[491,801,802,804,806,808,810,813,815,817,819,821,823,825,827,829,832,835,838],{"class":493,"line":494},[491,803,498],{"class":497},[491,805,502],{"class":501},[491,807,505],{"class":501},[491,809,508],{"class":501},[491,811,812],{"class":501}," job",[491,814,515],{"class":514},[491,816,518],{"class":501},[491,818,522],{"class":521},[491,820,525],{"class":514},[491,822,515],{"class":514},[491,824,530],{"class":501},[491,826,533],{"class":521},[491,828,525],{"class":514},[491,830,831],{"class":501}," --cron",[491,833,834],{"class":514}," \"",[491,836,837],{"class":501},"0 3 * * *",[491,839,840],{"class":514},"\"\n",[448,842,843,844,847,848,851,852,855,856,859],{},"Létrehoz egy job handler stubot és ütemezi a ",[465,845,846],{},"jobs\u002Fregister.go","-ban. A ",[465,849,850],{},"--cron"," 5-mezős cron kifejezéseket és asynq descriptorokat (",[465,853,854],{},"@every 30m",", ",[465,857,858],{},"@daily",") fogad el.",[482,861,863],{"className":484,"code":862,"language":486,"meta":487,"style":487},"go tool gpsystem add job orders expireStaleCarts --cron \"0 * * * *\"\n",[465,864,865],{"__ignoreMap":487},[491,866,867,869,871,873,875,877,879,882,884,886,889],{"class":493,"line":494},[491,868,498],{"class":497},[491,870,502],{"class":501},[491,872,505],{"class":501},[491,874,508],{"class":501},[491,876,812],{"class":501},[491,878,592],{"class":501},[491,880,881],{"class":501}," expireStaleCarts",[491,883,831],{"class":501},[491,885,834],{"class":514},[491,887,888],{"class":501},"0 * * * *",[491,890,840],{"class":514},[477,892,474],{"id":893},"add-worker",[482,895,897],{"className":484,"code":896,"language":486,"meta":487,"style":487},"go tool gpsystem add worker\n",[465,898,899],{"__ignoreMap":487},[491,900,901,903,905,907,909],{"class":493,"line":494},[491,902,498],{"class":497},[491,904,502],{"class":501},[491,906,505],{"class":501},[491,908,508],{"class":501},[491,910,911],{"class":501}," worker\n",[448,913,914,915,917,918,921,922,925,926,928,929,931,932,934,935,938,939,942],{},"Hozzáadja a worker-réteget (binary, sorbekötés, listener\u002Fjob scaffolding) egy olyan projekthez, amiben még nincs: a ",[465,916,470],{}," binárist, minden modul ",[465,919,920],{},"listeners\u002F"," és ",[465,923,924],{},"jobs\u002F"," alcsomagját, az outbox migrációt és a Valkey\u002Fworker konfigurációt. A ",[465,927,320],{}," és a ",[465,930,325],{}," már bedrótozza ezt neked, tehát az ",[465,933,474],{},"-t akkor veszed elő, ha egy projekt e nélkül lett összeállítva. Ha a ",[465,936,937],{},"compose.yml"," \u002F ",[465,940,941],{},".env.example"," nem tartalmazza az anchorokat, a beillesztendő blokkot kiírja beillesztésre ahelyett, hogy hibázna (ezek a fájlok nem fordulnak).",[477,944,946],{"id":945},"mi-drótozódik-be","Mi drótozódik be",[695,948,949,966],{},[698,950,951],{},[701,952,953,956,959],{},[704,954,955],{},"Generátor",[704,957,958],{},"Létrehozza",[704,960,961,962,965],{},"Bedrótozza (a ",[465,963,964],{},"\u002F\u002F gpsystem:*"," anchoroknál)",[711,967,968,996,1015,1033],{},[701,969,970,974,979],{},[716,971,972],{},[465,973,480],{},[716,975,976],{},[465,977,978],{},"events\u002F\u003Cnév>.go",[716,980,981,984,985,988,989,992,993,995],{},[465,982,983],{},"Dispatcher"," mező a ",[465,986,987],{},"register.go","-ban; konstrukciója a ",[465,990,991],{},"cmd\u002F\u003Cmodul>","-ban és ",[465,994,470],{},"-ben",[701,997,998,1002,1007],{},[716,999,1000],{},[465,1001,609],{},[716,1003,1004],{},[465,1005,1006],{},"listeners\u002F\u003Cnév>.go",[716,1008,1009,685,1012,1014],{},[465,1010,1011],{},"events.Listen(...)",[465,1013,680],{},"-ban",[701,1016,1017,1021,1026],{},[716,1018,1019],{},[465,1020,794],{},[716,1022,1023],{},[465,1024,1025],{},"jobs\u002F\u003Cnév>.go",[716,1027,1028,685,1031,1014],{},[465,1029,1030],{},"sched.Job(...)",[465,1032,846],{},[701,1034,1035,1039,1050],{},[716,1036,1037],{},[465,1038,474],{},[716,1040,1041,1043,1044,1046,1047,1049],{},[465,1042,470],{},", modulonkénti ",[465,1045,920],{},"\u002F",[465,1048,924],{}," alcsomag, outbox migráció",[716,1051,1052],{},"worker\u002Fvalkey konfig; minden modul a worker mainbe",[1054,1055,1056,1057,1059,1060,1063,1064,1066],"note",{},"Az ",[465,1058,353],{}," csak a bemásolt oapi-codegen template-eket szinkronizálja; a worker scaffoldhoz ",[549,1061,1062],{},"nem"," nyúl. A worker-réteg meglévő projektbe illesztéséhez az ",[465,1065,474],{},"-t használd.",[1054,1068,1069,1070,1074,1075,1078,1079,1082,1083,1087],{},"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 ",[452,1071,1072],{"href":301},[465,1073,300],{}," egy mail-notifiert (",[465,1076,1077],{},"internal\u002Fmodules\u002F\u003Cmodul>\u002Fmail\u002F",") scaffoldol, és a projekt első notifierénél bedrótozza a ",[465,1080,1081],{},"mail.Mailer","-t minden belépési pontba. Egy mail-notifiert jellemzően egy itt generált listenerből hívsz, lásd a ",[452,1084,1086],{"href":1085},"\u002Fhu\u002Fmail\u002Foverview#kidolgozott-p%C3%A9lda-a-contact-email-flow","contact-email kidolgozott példát",".",[1089,1090,1091],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":487,"searchDepth":761,"depth":761,"links":1093},[1094,1095,1096,1097,1098],{"id":479,"depth":761,"text":480},{"id":608,"depth":761,"text":609},{"id":793,"depth":761,"text":794},{"id":893,"depth":761,"text":474},{"id":945,"depth":761,"text":946},"add event, add listener, add job és add worker: háttérmunka scaffoldolása a cmd\u002Fworker binárishoz.","md",null,{},{"icon":266},{"title":349,"description":1099},"zFZcunqdkGrBK7_naemTazFitABYqdB5pP2Ce6xGgUk",[1107,1109],{"title":344,"path":345,"stem":346,"description":1108,"icon":347,"children":-1},"Új, időbélyeg-prefixes SQL-migráció létrehozása a projekt migrations\u002F mappájában.",{"title":353,"path":354,"stem":355,"description":1110,"icon":356,"children":-1},"A projekt codegen template-jeinek újraszinkronizálása a CLI beágyazott készletéből.",1785445895692]