[{"data":1,"prerenderedAt":563},["ShallowReactive",2],{"navigation":3,"\u002Freference\u002Fphp-api":65,"\u002Freference\u002Fphp-api-surround":560},[4,25,50],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Building FrankenPHP","\u002Fgetting-started\u002Fbuilding-frankenphp","1.getting-started\u002F3.building-frankenphp","i-lucide-hammer",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Extensions","\u002Fextensions","2.extensions",[30,35,40,45],{"title":31,"path":32,"stem":33,"icon":34},"Queue","\u002Fextensions\u002Fqueue","2.extensions\u002F1.queue","i-lucide-list-checks",{"title":36,"path":37,"stem":38,"icon":39},"Scheduler","\u002Fextensions\u002Fscheduler","2.extensions\u002F2.scheduler","i-lucide-calendar-clock",{"title":41,"path":42,"stem":43,"icon":44},"Pogo","\u002Fextensions\u002Fpogo","2.extensions\u002F3.pogo","i-lucide-split",{"title":46,"path":47,"stem":48,"icon":49},"WebSocket","\u002Fextensions\u002Fwebsocket","2.extensions\u002F4.websocket","i-lucide-radio",{"title":51,"icon":6,"path":52,"stem":53,"children":54,"page":6},"Reference","\u002Freference","3.reference",[55,60],{"title":56,"path":57,"stem":58,"icon":59},"Caddy Reference","\u002Freference\u002Fcaddy","3.reference\u002F1.caddy","i-lucide-settings-2",{"title":61,"path":62,"stem":63,"icon":64},"PHP API","\u002Freference\u002Fphp-api","3.reference\u002F2.php-api","i-lucide-file-code-2",{"id":66,"title":61,"body":67,"description":553,"extension":554,"links":555,"meta":556,"navigation":557,"path":62,"seo":558,"stem":63,"__hash__":559},"docs\u002F3.reference\u002F2.php-api.md",{"type":68,"value":69,"toc":547},"minimark",[70,74,116,123,196,210,213,303,342,352,355,362,365,385,395,404,407,422,436,439,543],[71,72,31],"h2",{"id":73},"queue",[75,76,81],"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-php shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pogo_queue_push(string $queue, string $payload, int $delaySeconds = 0): string;\npogo_queue_ack(string $queue, string $deliveryId): int;\npogo_queue_release(string $queue, string $deliveryId, int $delaySeconds = 0): int;\npogo_queue_fail(string $queue, string $deliveryId, string $reason = ''): int;\npogo_queue_status(?string $queue = null): string;\n","php","",[82,83,84,92,98,104,110],"code",{"__ignoreMap":80},[85,86,89],"span",{"class":87,"line":88},"line",1,[85,90,91],{},"pogo_queue_push(string $queue, string $payload, int $delaySeconds = 0): string;\n",[85,93,95],{"class":87,"line":94},2,[85,96,97],{},"pogo_queue_ack(string $queue, string $deliveryId): int;\n",[85,99,101],{"class":87,"line":100},3,[85,102,103],{},"pogo_queue_release(string $queue, string $deliveryId, int $delaySeconds = 0): int;\n",[85,105,107],{"class":87,"line":106},4,[85,108,109],{},"pogo_queue_fail(string $queue, string $deliveryId, string $reason = ''): int;\n",[85,111,113],{"class":87,"line":112},5,[85,114,115],{},"pogo_queue_status(?string $queue = null): string;\n",[117,118,119,122],"p",{},[82,120,121],{},"pogo_queue_push()"," returns JSON:",[75,124,128],{"className":125,"code":126,"language":127,"meta":80,"style":80},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"ok\": true,\n  \"id\": \"1700000000-0\",\n  \"code\": 1\n}\n","json",[82,129,130,136,154,177,191],{"__ignoreMap":80},[85,131,132],{"class":87,"line":88},[85,133,135],{"class":134},"sMK4o","{\n",[85,137,138,141,145,148,151],{"class":87,"line":94},[85,139,140],{"class":134},"  \"",[85,142,144],{"class":143},"spNyl","ok",[85,146,147],{"class":134},"\"",[85,149,150],{"class":134},":",[85,152,153],{"class":134}," true,\n",[85,155,156,158,161,163,165,168,172,174],{"class":87,"line":100},[85,157,140],{"class":134},[85,159,160],{"class":143},"id",[85,162,147],{"class":134},[85,164,150],{"class":134},[85,166,167],{"class":134}," \"",[85,169,171],{"class":170},"sfazB","1700000000-0",[85,173,147],{"class":134},[85,175,176],{"class":134},",\n",[85,178,179,181,183,185,187],{"class":87,"line":106},[85,180,140],{"class":134},[85,182,82],{"class":143},[85,184,147],{"class":134},[85,186,150],{"class":134},[85,188,190],{"class":189},"sbssI"," 1\n",[85,192,193],{"class":87,"line":112},[85,194,195],{"class":134},"}\n",[117,197,198,199,202,203,205,206,209],{},"Failure responses include ",[82,200,201],{},"ok: false",", a numeric ",[82,204,82],{},", and a human-readable ",[82,207,208],{},"message",".",[117,211,212],{},"Queue result codes:",[214,215,216,229],"table",{},[217,218,219],"thead",{},[220,221,222,226],"tr",{},[223,224,225],"th",{},"Code",[223,227,228],{},"Meaning",[230,231,232,243,253,263,273,283,293],"tbody",{},[220,233,234,240],{},[235,236,237],"td",{},[82,238,239],{},"0",[235,241,242],{},"Queue full",[220,244,245,250],{},[235,246,247],{},[82,248,249],{},"1",[235,251,252],{},"Accepted",[220,254,255,260],{},[235,256,257],{},[82,258,259],{},"2",[235,261,262],{},"Worker unavailable",[220,264,265,270],{},[235,266,267],{},[82,268,269],{},"3",[235,271,272],{},"Payload too large",[220,274,275,280],{},[235,276,277],{},[82,278,279],{},"4",[235,281,282],{},"Queue shutting down",[220,284,285,290],{},[235,286,287],{},[82,288,289],{},"5",[235,291,292],{},"Backend failure",[220,294,295,300],{},[235,296,297],{},[82,298,299],{},"6",[235,301,302],{},"Queue unknown",[117,304,305,308,309,312,313,316,317,316,320,316,323,316,326,316,329,316,332,316,335,338,339,209],{},[82,306,307],{},"pogo_queue_status()"," returns JSON with ",[82,310,311],{},"ready"," and per-queue metrics such as ",[82,314,315],{},"pending",", ",[82,318,319],{},"delayed",[82,321,322],{},"reserved",[82,324,325],{},"failed",[82,327,328],{},"enqueued",[82,330,331],{},"acked",[82,333,334],{},"released",[82,336,337],{},"backend_errors",", and ",[82,340,341],{},"max_payload_bytes",[117,343,344,347,348,351],{},[82,345,346],{},"pogo_queue(string $data): int"," remains available as a deprecated v1 compatibility helper for immediate dispatch to the ",[82,349,350],{},"default"," queue.",[71,353,36],{"id":354},"scheduler",[117,356,357,358,361],{},"Pogo Scheduler has no PHP API. It is configured through the ",[82,359,360],{},"pogo_scheduler"," Caddy global option.",[71,363,41],{"id":364},"pogo",[75,366,368],{"className":77,"code":367,"language":79,"meta":80,"style":80},"pogo_dispatch(string $class, array $args = [], string $pool = 'default'): int;\npogo_await(int $handle, float $timeout = 5.0): mixed;\npogo_pool_size(string $pool = 'default'): int;\n",[82,369,370,375,380],{"__ignoreMap":80},[85,371,372],{"class":87,"line":88},[85,373,374],{},"pogo_dispatch(string $class, array $args = [], string $pool = 'default'): int;\n",[85,376,377],{"class":87,"line":94},[85,378,379],{},"pogo_await(int $handle, float $timeout = 5.0): mixed;\n",[85,381,382],{"class":87,"line":100},[85,383,384],{},"pogo_pool_size(string $pool = 'default'): int;\n",[117,386,387,390,391,394],{},[82,388,389],{},"pogo_dispatch()"," returns a handle. ",[82,392,393],{},"pogo_await()"," waits for the handle and returns the decoded job result.",[117,396,397,399,400,403],{},[82,398,393],{}," throws ",[82,401,402],{},"RuntimeException"," for invalid handles, timeouts, worker failures, and job exceptions.",[71,405,46],{"id":406},"websocket",[75,408,410],{"className":77,"code":409,"language":79,"meta":80,"style":80},"pogo_websocket_publish(string $appId, string $channel, string $event, string $data): int;\npogo_websocket_broadcast_multi(string $appId, string $channels, string $event, string $data): int;\n",[82,411,412,417],{"__ignoreMap":80},[85,413,414],{"class":87,"line":88},[85,415,416],{},"pogo_websocket_publish(string $appId, string $channel, string $event, string $data): int;\n",[85,418,419],{"class":87,"line":94},[85,420,421],{},"pogo_websocket_broadcast_multi(string $appId, string $channels, string $event, string $data): int;\n",[117,423,424,427,428,431,432,435],{},[82,425,426],{},"$data"," must be a JSON string. ",[82,429,430],{},"$channels"," for ",[82,433,434],{},"pogo_websocket_broadcast_multi()"," must be a JSON encoded array of channel names.",[117,437,438],{},"Return status codes:",[214,440,441,449],{},[217,442,443],{},[220,444,445,447],{},[223,446,225],{},[223,448,228],{},[230,450,451,460,469,478,487,495,504,513,523,533],{},[220,452,453,457],{},[235,454,455],{},[82,456,239],{},[235,458,459],{},"Success",[220,461,462,466],{},[235,463,464],{},[82,465,249],{},[235,467,468],{},"Hub missing",[220,470,471,475],{},[235,472,473],{},[82,474,259],{},[235,476,477],{},"Channel too long",[220,479,480,484],{},[235,481,482],{},[82,483,269],{},[235,485,486],{},"Event too long",[220,488,489,493],{},[235,490,491],{},[82,492,279],{},[235,494,272],{},[220,496,497,501],{},[235,498,499],{},[82,500,289],{},[235,502,503],{},"Invalid payload JSON",[220,505,506,510],{},[235,507,508],{},[82,509,299],{},[235,511,512],{},"Broker publish failed",[220,514,515,520],{},[235,516,517],{},[82,518,519],{},"7",[235,521,522],{},"Invalid multi-channel JSON",[220,524,525,530],{},[235,526,527],{},[82,528,529],{},"8",[235,531,532],{},"Broker queue full",[220,534,535,540],{},[235,536,537],{},[82,538,539],{},"9",[235,541,542],{},"Shard queue full",[544,545,546],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":80,"searchDepth":88,"depth":94,"links":548},[549,550,551,552],{"id":73,"depth":94,"text":31},{"id":354,"depth":94,"text":36},{"id":364,"depth":94,"text":41},{"id":406,"depth":94,"text":46},"Native PHP functions exposed by the Pogo FrankenPHP plugins.","md",null,{},{"icon":64},{"title":61,"description":553},"uLy4-zpY-vNkoiI02RjHZTLiG8XXuhxP34eZ3orv0jU",[561,555],{"title":56,"path":57,"stem":58,"description":562,"icon":59,"children":-1},"Directive overview for Queue, Scheduler, Pogo, and WebSocket.",1779731237721]