1: 守护进程概述

Phlo Daemon 是一个可选的 Node sidecar(phlo-daemon.js),它在一组常驻工作者上运行任何 Phlo 目标。它是一个通用引擎:它对 WebSockets、任务或任何特性一无所知。Phlo Realtime 和调度器内置于守护进程中;运行时助手通过本地 HTTP 访问它。核心 Phlo 在没有它的情况下也能工作;守护进程是使重路径快速并支持长时间运行服务的层。

Phlo Daemon broncode (phlo-daemon.js)

1.1: Phlo 运行代码的三种方式

在 Phlo 应用中的每个例程都是一个可调用的目标(Class::methodobject.method 或一个裸露的 function)。它实际上有三种执行方式:

模式 发生的事情 何时
进程内 在当前请求中进行普通的函数或方法调用。没有新进程。 正常情况:routes、views、models。
一次性 CLI 一个新的 php app.php <target> 进程启动应用,运行并退出。 从 cron、部署脚本或没有守护进程的 async helper 调用的目标。每次调用一个启动。
池化工作者 一个常驻工作者(由守护进程启动)曾经启动过应用并通过管道响应调用。没有每次调用的启动。 当守护进程运行时,相同的目标。

第一种情况只是 PHP。第二种和第三种是以带外方式运行的相同目标;唯一的区别在于每次是否启动一个新的进程(一次性)或重用一个热工作者(池)。守护进程将一次性路径转换为池化路径。

1.2: 为什么这是可选的

一键路径意味着没有任何硬性依赖于守护进程。Async helpers 会回退到子进程;任务会回退到 cron;一个仅提供 HTTP 的应用根本不需要它。因此,您可以在没有守护进程的情况下进行开发和部署,并在启动成本或实时性重要的地方开启它,而无需更改您的应用代码。

当一个应用需要时,运行守护进程:

1.3: 你连接的是什么

phlo-daemon 仓库 是源代码,而指南的 Daemon 章节 是密集的技术参考。

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