[{"data":1,"prerenderedAt":1126},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-queue-tasks":442,"-hu-queue-tasks-surround":1121},[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":57,"body":444,"description":1114,"extension":1115,"links":1116,"meta":1117,"navigation":1118,"path":58,"seo":1119,"stem":59,"__hash__":1120},"docs_hu\u002Fhu\u002F10.queue\u002F2.tasks.md",{"type":445,"value":446,"toc":1106},"minimark",[447,482,487,492,610,631,707,721,725,732,874,893,898,929,933,939,1016,1047,1051,1102],[448,449,450,451,459,460,463,464,467,468,470,471,474,475,478,479,481],"p",{},"A ",[452,453,455],"a",{"href":454},"\u002Fhu\u002Fqueue\u002Foverview#client",[456,457,458],"code",{},"Client"," és az ",[456,461,462],{},"Enqueue"," metódusa önmagában elég egy nyers ",[456,465,466],{},"*asynq.Task"," beküldéséhez, de minden réteg, ami a ",[456,469,46],{},"-ra épül, az ",[452,472,473],{"href":68},"események"," modul listener-fan-outjától az ",[452,476,477],{"href":78},"ütemező"," cron-bejegyzéseiig, még három dolgot megoszt: egy közös enqueue-opció-készletet, egy közös boríték-formátumot az event-payloadokhoz, és egy közös task-típus-elnevezési sémát. Ez az oldal mindhármat tárgyalja; a mindennapokban változatlanul ezekkel találkozol mindenhol, ahol a ",[456,480,46],{}," alattuk van.",[483,484,486],"h2",{"id":485},"enqueue-opciók","Enqueue-opciók",[448,488,450,489,491],{},[456,490,46],{}," az asynq opciók hasznos részhalmazát exportálja újra, hogy a gyakori esetekhez ne kelljen asynq-ot importálni:",[493,494,495,508],"table",{},[496,497,498],"thead",{},[499,500,501,505],"tr",{},[502,503,504],"th",{},"Opció",[502,506,507],{},"Hatás",[509,510,511,529,539,549,559,573,583,596],"tbody",{},[499,512,513,519],{},[514,515,516],"td",{},[456,517,518],{},"OnQueue(name)",[514,520,521,522,525,526],{},"nevesített queue-ba irányít (a worker ",[456,523,524],{},"WORKER_QUEUES"," súlyai szerint); üresen ",[456,527,528],{},"default",[499,530,531,536],{},[514,532,533],{},[456,534,535],{},"MaxRetry(n)",[514,537,538],{},"ennyi újrapróbálkozás után kerül archívba a hibázó task",[499,540,541,546],{},[514,542,543],{},[456,544,545],{},"Timeout(d)",[514,547,548],{},"egyetlen futási kísérlet időkorlátja",[499,550,551,556],{},[514,552,553],{},[456,554,555],{},"Deadline(t)",[514,557,558],{},"abszolút határidő az összes kísérletre",[499,560,561,566],{},[514,562,563],{},[456,564,565],{},"ProcessIn(d)",[514,567,568,569,572],{},"a feldolgozás ",[456,570,571],{},"d","-vel későbbre tolása",[499,574,575,580],{},[514,576,577],{},[456,578,579],{},"Unique(ttl)",[514,581,582],{},"azonos típus+payload task elnyomása, amíg az előző függőben van",[499,584,585,590],{},[514,586,587],{},[456,588,589],{},"Retention(d)",[514,591,592,593,595],{},"a kész task még ",[456,594,571],{},"-ig megmarad a Valkeyben, visszanézhetően",[499,597,598,603],{},[514,599,600],{},[456,601,602],{},"TaskID(id)",[514,604,605,606,609],{},"explicit task-azonosító; az ütközés ",[456,607,608],{},"ErrDuplicate"," (idempotens kézbesítés alapja)",[448,611,612,613,617,618,624,625,627,628,630],{},"Az opciók mindenhol ugyanígy néznek ki, ahol task születik: az ",[452,614,615],{"href":454},[456,616,462],{},"-nál, az ",[452,619,621],{"href":620},"\u002Fhu\u002Fevents\u002Foverview#listenerek",[456,622,623],{},"events.Listen"," listener-regisztrációnál és az ",[452,626,477],{"href":78}," bejegyzéseinél. A shop ",[456,629,113],{}," queue-ja például a listener regisztrációjában jelenik meg:",[632,633,638],"pre",{"className":634,"code":635,"language":636,"meta":637,"style":637},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","events.Listen(reg, \"sendOrderConfirmation\", sendOrderConfirmation(deps), queue.OnQueue(\"mail\"))\n","go","",[456,639,640],{"__ignoreMap":637},[641,642,645,648,652,656,659,662,665,668,672,675,677,680,682,685,688,691,693,696,698,700,702,704],"span",{"class":643,"line":644},"line",1,[641,646,61],{"class":647},"sTEyZ",[641,649,651],{"class":650},"sMK4o",".",[641,653,655],{"class":654},"s2Zo4","Listen",[641,657,658],{"class":650},"(",[641,660,661],{"class":647},"reg",[641,663,664],{"class":650},",",[641,666,667],{"class":650}," \"",[641,669,671],{"class":670},"sfazB","sendOrderConfirmation",[641,673,674],{"class":650},"\"",[641,676,664],{"class":650},[641,678,679],{"class":654}," sendOrderConfirmation",[641,681,658],{"class":650},[641,683,684],{"class":647},"deps",[641,686,687],{"class":650},"),",[641,689,690],{"class":647}," queue",[641,692,651],{"class":650},[641,694,695],{"class":654},"OnQueue",[641,697,658],{"class":650},[641,699,674],{"class":650},[641,701,113],{"class":670},[641,703,674],{"class":650},[641,705,706],{"class":650},"))\n",[448,708,709,710,713,714,717,718,720],{},"Ha a teljes asynq opciókészlet kell, a ",[456,711,712],{},"queue.AsynqOptions(opts...)"," ezeket nyers ",[456,715,716],{},"[]asynq.Option","-né alakítja, és az ",[456,719,462],{}," mellett az asynq API-ja is nyitva áll (escape hatch, nem tiltott zóna).",[483,722,724],{"id":723},"a-boríték-envelope","A boríték (Envelope)",[448,726,727,728,731],{},"Minden event-task payloadja ugyanaz a wire-formátum, a ",[456,729,730],{},"queue.Envelope",":",[632,733,735],{"className":634,"code":734,"language":636,"meta":637,"style":637},"type Envelope struct {\n    ID         string            `json:\"id\"`         \u002F\u002F dispatch-azonosító, egyben asynq TaskID\n    Name       string            `json:\"name\"`       \u002F\u002F az event neve (EventName())\n    Payload    json.RawMessage   `json:\"payload\"`    \u002F\u002F a JSON-kódolt event-érték\n    Metadata   map[string]string `json:\"metadata,omitempty\"` \u002F\u002F W3C trace-kontextus\n    OccurredAt time.Time         `json:\"occurred_at\"`\n}\n",[456,736,737,752,775,793,818,845,868],{"__ignoreMap":637},[641,738,739,742,746,749],{"class":643,"line":644},[641,740,741],{"class":650},"type",[641,743,745],{"class":744},"sBMFI"," Envelope",[641,747,748],{"class":650}," struct",[641,750,751],{"class":650}," {\n",[641,753,755,758,762,765,768,771],{"class":643,"line":754},2,[641,756,757],{"class":647},"    ID         ",[641,759,761],{"class":760},"spNyl","string",[641,763,764],{"class":650},"            `",[641,766,767],{"class":670},"json:\"id\"",[641,769,770],{"class":650},"`",[641,772,774],{"class":773},"sHwdD","         \u002F\u002F dispatch-azonosító, egyben asynq TaskID\n",[641,776,778,781,783,785,788,790],{"class":643,"line":777},3,[641,779,780],{"class":647},"    Name       ",[641,782,761],{"class":760},[641,784,764],{"class":650},[641,786,787],{"class":670},"json:\"name\"",[641,789,770],{"class":650},[641,791,792],{"class":773},"       \u002F\u002F az event neve (EventName())\n",[641,794,796,799,802,804,807,810,813,815],{"class":643,"line":795},4,[641,797,798],{"class":647},"    Payload    ",[641,800,801],{"class":744},"json",[641,803,651],{"class":650},[641,805,806],{"class":744},"RawMessage",[641,808,809],{"class":650},"   `",[641,811,812],{"class":670},"json:\"payload\"",[641,814,770],{"class":650},[641,816,817],{"class":773},"    \u002F\u002F a JSON-kódolt event-érték\n",[641,819,821,824,827,829,832,834,837,840,842],{"class":643,"line":820},5,[641,822,823],{"class":647},"    Metadata   ",[641,825,826],{"class":650},"map[",[641,828,761],{"class":760},[641,830,831],{"class":650},"]",[641,833,761],{"class":760},[641,835,836],{"class":650}," `",[641,838,839],{"class":670},"json:\"metadata,omitempty\"",[641,841,770],{"class":650},[641,843,844],{"class":773}," \u002F\u002F W3C trace-kontextus\n",[641,846,848,851,854,856,859,862,865],{"class":643,"line":847},6,[641,849,850],{"class":647},"    OccurredAt ",[641,852,853],{"class":744},"time",[641,855,651],{"class":650},[641,857,858],{"class":744},"Time",[641,860,861],{"class":650},"         `",[641,863,864],{"class":670},"json:\"occurred_at\"",[641,866,867],{"class":650},"`\n",[641,869,871],{"class":643,"line":870},7,[641,872,873],{"class":650},"}\n",[448,875,876,877,880,881,884,885,888,889,892],{},"A boríték a dispatchertől (vagy az ",[452,878,879],{"href":73},"outboxtól",") a fan-out taskon át minden listener-taskig változatlanul utazik: a listener ugyanazt az ",[456,882,883],{},"ID","-t, payloadot és trace-kontextust látja, amit a producer beletett. Az ",[456,886,887],{},"env.Task()"," rendereli fan-out taskká, a ",[456,890,891],{},"queue.DecodeEnvelope(task)"," bontja ki a túloldalon.",[894,895,897],"h3",{"id":896},"trace-propagáció-a-queue-n-át","Trace-propagáció a queue-n át",[448,899,900,901,904,905,908,909,912,913,916,917,920,921,925,926,651],{},"Az ",[456,902,903],{},"env.InjectTrace(ctx)"," a context trace-kontextusát W3C formátumban (",[456,906,907],{},"traceparent","\u002F",[456,910,911],{},"tracestate",") a ",[456,914,915],{},"Metadata","-ba írja; a worker oldalán az ",[456,918,919],{},"env.ExtractTrace(ctx)"," folytatja ugyanazt a trace-t. Így a HTTP-kérés → outbox → relay → worker → listener út ",[922,923,924],"strong",{},"egyetlen trace",", a shopban a rendelésfeladástól a visszaigazoló e-mailig. A dispatcherek és a worker middleware ezt automatikusan megteszik; a részletekhez lásd az ",[452,927,928],{"href":189},"OpenTelemetry oldalt",[483,930,932],{"id":931},"task-típusok","Task-típusok",[448,934,935,936,938],{},"Négy task-típus-prefix fedi le mindazt, ami a ",[456,937,46],{},"-n át folyik az async kategóriában, és az alábbi helperek az egyetlen forrásai a wire-neveknek:",[493,940,941,954],{},[496,942,943],{},[499,944,945,948,951],{},[502,946,947],{},"Helper",[502,949,950],{},"Task-típus",[502,952,953],{},"Ki hozza létre",[509,955,956,971,986,1001],{},[499,957,958,963,968],{},[514,959,960],{},[456,961,962],{},"EventTaskType(name)",[514,964,965],{},[456,966,967],{},"event:shop.orderPlaced",[514,969,970],{},"dispatch \u002F outbox relay (a fan-out kiindulópontja)",[499,972,973,978,983],{},[514,974,975],{},[456,976,977],{},"ListenerTaskType(event, listener)",[514,979,980],{},[456,981,982],{},"listener:shop.orderPlaced:sendOrderConfirmation",[514,984,985],{},"a worker fan-out handlere, listenerenként egy",[499,987,988,993,998],{},[514,989,990],{},[456,991,992],{},"ScheduleTaskType(name)",[514,994,995],{},[456,996,997],{},"schedule:shop.someEvent",[514,999,1000],{},"az ütemező, ütemezett event tüzelésekor",[499,1002,1003,1008,1013],{},[514,1004,1005],{},[456,1006,1007],{},"JobTaskType(name)",[514,1009,1010],{},[456,1011,1012],{},"job:shop.nightlySalesReport",[514,1014,1015],{},"az ütemező, ütemezett job tüzelésekor",[448,1017,1018,1019,1022,1023,908,1026,908,1029,908,1032,1035,1036,1039,1040,1043,1044,1046],{},"A kit ",[452,1020,1021],{"href":264},"workere"," a prefixek alapján osztja szét a taskokat a négy beépített handlerének; az ",[456,1024,1025],{},"IsEventTaskType",[456,1027,1028],{},"IsListenerTaskType",[456,1030,1031],{},"IsJobTaskType",[456,1033,1034],{},"IsScheduleTaskType"," és a ",[456,1037,1038],{},"JobName"," helperek ugyanezt a besorolást adják bárkinek, aki (pl. ",[456,1041,1042],{},"WithMux","-szal regisztrált saját handlerben) nyers taskokkal dolgozik. Ezek a nevek jelennek meg az Asynqmonban és a worker logjaiban is: ránézésre látszik, melyik task melyik event melyik listenere. Az ",[452,1045,473],{"href":68}," modul és a worker chassis az, ami ténylegesen létrehozza és feldolgozza a taskokat ezekkel a nevekkel; ez az oldal csak az elnevezést definiálja, magát a fan-outot nem.",[483,1048,1050],{"id":1049},"mikor-nyúlsz-hozzá-közvetlenül","Mikor nyúlsz hozzá közvetlenül",[1052,1053,1054,1077,1093],"ul",{},[1055,1056,1057,1060,1061,1064,1065,1070,1071,651],"li",{},[922,1058,1059],{},"Saját, nem event-alapú task",": építs ",[456,1062,1063],{},"asynq.NewTask(...)","-ot, add be a ",[452,1066,1067],{"href":454},[456,1068,1069],{},"client.Enqueue","-tel, és regisztrálj rá handlert a workerben ",[452,1072,1074,1076],{"href":1073},"\u002Fhu\u002Fkit\u002Fworker#opci%C3%B3k",[456,1075,1042],{},"-szal",[1055,1078,1079,1082,1083,1086,1087,1089,1090,1092],{},[922,1080,1081],{},"Idempotens „pontosan egyszer ható\" enqueue",": ",[456,1084,1085],{},"TaskID"," + ",[456,1088,608],{},"-kezelés, ahogy az ",[452,1091,52],{"href":454}," oldalon.",[1055,1094,1095,1098,1099,651],{},[922,1096,1097],{},"Minden más"," (event dispatch, ütemezés) a felsőbb rétegek dolga: kezdd az ",[452,1100,1101],{"href":68},"eseményeknél",[1103,1104,1105],"style",{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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":637,"searchDepth":754,"depth":754,"links":1107},[1108,1109,1112,1113],{"id":485,"depth":754,"text":486},{"id":723,"depth":754,"text":724,"children":1110},[1111],{"id":896,"depth":777,"text":897},{"id":931,"depth":754,"text":932},{"id":1049,"depth":754,"text":1050},"Enqueue-opciók, az event-boríték, OTel trace-propagáció a queue-n át, és a task-típus-elnevezési konvenciók.","md",null,{},{"icon":47},{"title":57,"description":1114},"QcwYPTu5mw7UGcimFE6ggV68FIPxJuIQDkUdjUQH1zU",[1122,1124],{"title":52,"path":53,"stem":54,"description":1123,"icon":55,"children":-1},"Az asynq + Valkey alapréteg: kapcsolat-config, kliens és task-beküldés, amire az egész async kategória épül.",{"title":67,"path":68,"stem":69,"description":1125,"icon":70,"children":-1},"Eventek és listenerek asynq felett, minden listener önálló, saját retry-keretű task.",1785445887854]