在Windows上分叉PHP

前端之家收集整理的这篇文章主要介绍了在Windows上分叉PHP前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们正在 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');

猜你在找的Windows相关文章