Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的并行处理?_Php_Parallel Processing_Ob Start - Fatal编程技术网

PHP中的并行处理?

PHP中的并行处理?,php,parallel-processing,ob-start,Php,Parallel Processing,Ob Start,我的网站有使用ob_start()和$content=ob_get_clean()的源页面。在它们里面,我多次使用一个函数,使用curl和bing将单词/短语翻译成指定的语言 如果翻译是在数据库中查找之前完成的,否则它会收到bing的一系列回复。我希望它能并行执行,这样它可以更快地翻译页面。有什么想法吗?不幸的是,我认为在PHP中没有并行处理。 据我所知,模拟并行处理的唯一方法是使用一个聪明的cron作业,并启动它的多个实例。使用gearman可以完成几个并行php进程(非线程)),因为gear

我的网站有使用ob_start()和$content=ob_get_clean()的源页面。在它们里面,我多次使用一个函数,使用curl和bing将单词/短语翻译成指定的语言


如果翻译是在数据库中查找之前完成的,否则它会收到bing的一系列回复。我希望它能并行执行,这样它可以更快地翻译页面。有什么想法吗?

不幸的是,我认为在PHP中没有并行处理。
据我所知,模拟并行处理的唯一方法是使用一个聪明的cron作业,并启动它的多个实例。

使用gearman可以完成几个并行php进程(非线程)),因为gearman本身并不支持并行处理。但是,有一些方法可以模拟它,如本页所示:


其背后的想法是,您可以制作一个进程管理器或类似的东西来管理后台运行的线程并检查它们的状态。因为它们是后台进程,所以可以启动多个进程。您的经理可以在脚本全部完成后继续您的脚本。

我将使用“不要使用自动翻译”。结果将非常糟糕。看看你能不能找些志愿者或其他什么人来帮你翻译网页。我的老板想用自动翻译。。。虽然我这样做是为了让人们可以编辑存储在数据库中的以前的翻译。啊,如果你必须这样做,那么我想你必须这样做。至少你在某种程度上为它构建了真正的翻译。你在练习短语还是单字?单篇作品会更糟糕,因为上下文可能会根据短语中使用的方式/时间而发生变化。其中一半是单篇。如果你的
cron
工作就是这么做的,那肯定不聪明。从技术上讲,您可以使用类似于
system('/path/to/php/path/to/script.php&')
作为
&
将允许在不等待
script.php
完成的情况下返回页面,但实际上也不应该使用它。由于系统命令不异步运行,因此这不会给您带来他想要的多线程效果。但是,令人惊讶的是,命令末尾的
&
将使您退出
系统
,并让您的脚本继续运行-从技术上讲,这是一个并行过程,尽管您不会从中得到返回。