问题标签 [pcntl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何在 PHP MAMP 中启用进程控制扩展 (PCNTL)?
我有 MAMP,我需要-pcntl
在我当前的 MAMP 安装上启用。我该怎么做?
谢谢你的帮助。
php - 激活 pcntl_fork() ubuntu xampp
我在 php 中的函数 pcntl_fork() 有一些问题。
我正在使用 XAMPP,我正在尝试使用该功能并一直显示此错误:
调用未定义函数 pcntl_fork()
我在 Google 和 XAMPP 论坛上挖掘了一些东西,但找不到任何完全有用的东西。我发现一些论坛说我需要启用一些名为
--启用-pcntl
我看到了 phpinfo() 并且我在配置命令中有该选项。你能帮助我吗?
提前感谢,
埃尔卡斯
php - 如何在 pcntl_fork 之后将我的 mysql 连接保持在父进程中?
众所周知,当您 fork 时,孩子会获得所有内容的副本,包括文件和网络描述符 - man fork
.
在 PHP 中,当您使用 pcntl_fork 时,您使用 mysql_connect 创建的所有连接都会被复制,这有点问题 - php docs and SO question。这种情况下的常识是关闭父连接,创建新连接并让孩子使用旧连接。但是,如果说父母需要在几秒钟内创造出许多孩子呢?在这种情况下,您最终会创建大量新连接 - 每一堆叉子都有一个。
这在代码中意味着什么:
好吧,我不想那样做——这对数据库的连接太多了。理想情况下,我希望能够实现与此类似的行为:
你认为有可能吗?
其他一些事情:
- 这是 php-cli 脚本
我已经尝试在第一个示例中使用 mysql_pconnect,但据我所知没有区别 - mysql 服务器接收到尽可能多的新连接。也许那是因为它是 cli 并且 pconnect 不能像在 mod_php 中那样工作。正如 Marc 所注意到的 - php-cli 中的 pconnect 没有意义。
php - pcntl_signal 不是由子进程触发的
我想实现这一点:
如果守护进程获得 SIGHUP 则再次运行该进程(作为子进程)并杀死父进程。
当我运行它时,第一次工作:
问题是,如果现在我要杀死子进程,则不会触发该功能
编码:
此代码适用于 PHP 5.2.9,但不适用于 PHP 5.3.5。有没有办法让它也适用于那个版本?
谢谢!
罗尼
php - PHP PCNTL - 可信赖的错误记录可能吗?
我当前的应用程序对 PHP 页面进行 ajax 调用,该页面向我们的 Oracle 平台上的 JSP 页面发出 API 请求。目前,PHP 脚本只相信从 JSP 返回的有效数据并将{true}
json 响应发送回 ajax 成功处理程序。ajax 设置为现在优雅地失败,因此无论如何它都会工作,但这对我们没有帮助。
我的任务是,一旦 jsp 文件设置为抛出异常,我将让 PHP 相应地处理异常,记录错误并返回 json{false}
响应。
我们担心如果过于全面,日志记录可能会花费太长时间。这个过程(没有记录或错误检查)目前非常快,速度是一个关键因素。我规避这个潜在瓶颈的想法是告诉 PHP “记录错误,但不要等待确认记录了任何内容,只需返回 false”。
我知道使用 PCNTL 可以进行分叉,但我对分叉整个过程犹豫不决,因为我可以看到如果我们进行分叉,这对内存的要求很高。
是否有可能做我希望的事情,即使不是使用 PCNTL,我将如何实现这一目标?
php - 在运行查询之前,如何检查 PDO MySQL 连接是否有错误?
我的脚本在许多不同的功能中都充斥着分叉的进程。无论何时pcntl_fork()
调用,所有 MySQL 连接都将丢失。如果我在 PDO MySQL 连接上运行查询,我会收到错误消息"MySQL server has gone away"
。
问题是此错误仅在PDO::errorinfo()
查询执行失败后出现。我希望能够在尝试运行查询之前检测 MySQL 服务器是否“已消失”。这样我就可以创建一个 PDO 包装器,在这种情况下为我建立新的连接。
有任何想法吗?
php - PHP pcntl 变量范围
我希望能够修改父 pid 中的数组元素。这是一些示例代码:
因此,当此脚本结束时,我在子进程中编写的两个元素在 foreach 循环结束时不存在。我无法从孩子修改父 pid 中的数组。我明白为什么,但想不出一个能让我这样做的好解决方案。你能提出什么建议吗?全局变量什么的?
php - posix_kill 与 pcntl_signal
这有点深奥,在我自己拖钓源并回答之前,这个问题可能会没有答案,但这里是:
我是一个简单的 PHP 守护程序库的作者:https ://github.com/shaneharter/PHP-Daemon 。虽然 PHP 对于这类事情并不理想,但有时人们需要在 PHP 中守护进程或编写 crons 并编写库以使“外行”的任务更容易。
我正在为该库实现 JavaScript Workers API,并且正在考虑添加对 POSIX 的依赖项(现在它正在使用 PCNTL 做所有事情)。
有人知道 PCNTL_SIGNAL 和 POSIX_KILL 之间有什么区别吗?我可以使用任何一个向任何进程发送任何信号。所以....一个比另一个好?还是他们俩真的在幕后做同样的事情?
php - PHP pcntl 脚本 - 需要指导
我正在做一个抓取项目,在应用程序的某个地方我需要这个功能
一次又一次地运行一个脚本,停顿几秒钟。
我尝试使用 pcntl 来完成这项工作。所以写了这个脚本
我像这样从 CLI 调用这个脚本
我希望 process.php 会以 10 秒的间隔一次又一次地启动。它正在按照我的预期工作,但是当我检查正在运行的进程时,这个脚本启动了数千个正在运行的进程。
我的要求很简单:一个脚本应该以 10 秒的 Pause 一次又一次地启动。