3: 调度 API

守护进程的主要端点是 POST /dispatch。默认情况下,它绑定到 127.0.0.1,因此仅限于本地使用;请在网络边界进行限制。

3.1: 路由:按应用路径

一个调度携带 {app, target, args?, stream?, async?}:绝对的 .../app.php 路径告诉守护进程要运行哪个应用程序,每个应用程序的池通过该路径进行键控。运行时助手(由 daemon 常量启用)知道它们自己的应用程序并直接调度;没有主机映射可供查询。

内置的 WebSocket 服务器(Phlo Realtime)不通过 /dispatch。它只知道连接的 Host 头,因此通过注册表将其解析为一个应用程序,该注册表是从 config/daemon.js 中的 hosts 映射填充的,然后在同一池中进程内调度 websocket::<hook> 目标。POST /message(广播桥)和 GET /health 完成了 API。

3.2: 同步,异步,流

相同的端点以三种形式响应:

请求 响应
default {status:"ok", result} 一旦调用返回
async: true 202 {status:"ok", queued:true} 立即;调用在池中以火忘模式运行
stream: true 一个 application/x-ndjson{t:line,data}* 然后 {t:done,result}{t:error}

流式传输是渐进输出(一个 Phlo Realtime receive 处理程序,一个 AI 令牌流)逐行返回的方式,随着 worker 的打印而流动。

3.3: 返回的是什么

池返回目标的真实返回值,类型保持不变(布尔值仍然是布尔值)。一次性回退返回进程的标准输出作为字符串,因此在结果上进行分支的消费者可以处理这两种形状。错误以拒绝的调度形式出现(同步的 HTTP 错误,流的 {t:error} 帧),这就是抛出处理程序如何变成拒绝的 WebSocket 握手。

我们使用必要的cookie来使该网站正常工作。在您的许可下,我们还使用分析工具来改善网站。