如何在后台启动多个PHP脚本?

时间:2013-06-04 14:54:29

标签: php cakephp process

PHP的这一方面对我来说相当新鲜。

我有兴趣从父脚本中解雇大量(25-50)单独的进程。我希望父脚本不要等待这些其他脚本完成,我希望这些其他脚本能够并行运行。

每个脚本都会运行指定的时间来调用Web服务。

任何人都可以给我一些方向吗?我并没有特别要求编码答案,但我只是需要一些指导。

非常感谢。

2 个答案:

答案 0 :(得分:1)

看看这个功能。希望它有所帮助。

http://php.net/manual/en/function.pcntl-fork.php

答案 1 :(得分:0)

这实际上取决于你想要达到的目标。 @ Julien的分叉方法可以工作,但如果您的Web服务调用是数据密集型的话,这不是首选。我并不是说分叉是坏的,相反它是有效的,但是你想要调用不同的wev服务,你应该有办法更好地管理事物。

你可以做的另一件事是基于cronjobs。例如,如果您为应用程序中的某些用户调用这些Web服务,则创建一个队列 - 一个DB表,您可以添加需要处理的记录。如果您使用Cake,请使用Cake Shells。然后设置cronjobs,它会不时地调用处理这些记录的shell。划分所有服务是单独的队列 - 至少对于逻辑上非常不同的队列。这样您也可以分担风险,因为如果其中一个Web服务调用出现故障,您不会以某种方式危及所有操作。为每个队列提供单独的日志记录功能,使您能够快速跟踪问题。对于消费Web服务,问题通常都在您的应用程序之外。