加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

在Windows上分叉PHP

发布时间:2021-03-15 20:46:45 所属栏目:Windows 来源:网络整理
导读:我们正在 Windows服务器上运行 PHP(确实存在许多问题的来源,但迁移目前不是一个选项).有几点,用户启动的操作将需要启动一些需要一段时间的事情,以及用户不需要知道他们是成功还是失败,例如发送电子邮件或确保一些第三方帐户已更新.如果我可以用pcntl_fork(

我们正在 Windows服务器上运行 PHP(确实存在许多问题的来源,但迁移目前不是一个选项).有几点,用户启动的操作将需要启动一些需要一段时间的事情,以及用户不需要知道他们是成功还是失败,例如发送电子邮件或确保一些第三方帐户已更新.如果我可以用pcntl_fork()分叉,这将非常简单,但PCNTL功能在Windows中不可用.

看起来我能得到的最接近的就是做一些这样的事情:

exec( 'php-cgi.exe somescript.php' );

然而,这将会更加复杂.我需要启动的动作依赖于已经在运行过程中存在的大量上下文;要使用上面的例子,我需要找出基本的数据,并以某种方式将其提供给新的脚本.如果我能分叉,这只是一个让父母过程早点恢复的问题,让孩子们再做一些事情.

我发现有几个人在谈论自己的工作来获取在Windows上编译的各种PCNTL功能,但没有一个似乎有任何可用的(坏链接等).

尽管this question具有与我几乎相同的名称,但似乎问题是比执行时间更长的执行超时.那么,是我最好的选择,只是重构一下来处理调用php-cgi,还是有其他选项?

编辑:似乎exec()不会为此工作,至少没有我知道它的一些其他方面,因为它等待,直到调用返回.我想我可以使用START,类似于exec(‘start php-cgi.exe somescript.php’);但是它仍然等待直到另一个脚本完成.

installing psexec如何使用-d(不要等待) option
exec('psexec -d php-cgi.exe somescript.php');

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!