从bash和APPEND结果运行PHP文件的多个实例到文件?

时间:2013-02-18 07:05:14

标签: php bash concurrency

我有一个名为iter.php的php文件。我可以通过bash输入轻松运行:

php iter.php >> result.txt

我可以通过重复它连续多次运行它。但是,我需要同时运行它们。所以,换句话说,如果我连续运行两个实例,它们应该在或多或少相同的时间内完成,并在彼此之后立即输出,因为它们相继运行。

我能用bash完成这个吗?

2 个答案:

答案 0 :(得分:4)

使用&

php iter.php >> result.txt & php iter.php >> result.txt

您可以通过

进行测试
php iter.php >> result.txt & sleep 10000 & php iter.php >> result.txt

答案 1 :(得分:2)

!#/bin/bash

seq $1 | while read num do
    php iter.php >> $2 &
done

上面的bash脚本应该以{{1​​}}(第一个脚本参数)进程连续运行,并将结果输出到$1(第二个bash参数)。

请注意,如果您的PHP脚本执行得非常快,您实际上可能看不到并发运行的结果,而是顺序运行的结果。这取决于是否:

  • 您的系统是单核或多核:您更有可能在以后获得并发结果
  • 对于单声道,脚本执行需要的时间超过一个"周期"调度,以及是否在该周期之后,bash进程获得CPU,(假设所述周期具有固定的持续时间,这不一定是真的),
  • 对输出的访问可以是并发的(所有事情都相同,但shell重定向应该允许这样做)