2010-04-09 40 views
5

首先 - 你好,这是我的第一个堆栈溢出问题,所以我会尽我所能进行正确的通信。推荐的方式来管理持续的PHP脚本过程?

我的问题的标题可能有点暧昧,所以让我对它立即展开:

我打算一个项目,该项目涉及从几个“流”的API获取数据输入,微博就是一个例子。我有一个用PHP编写的基本脚本,它可以从命令行无限期地运行,从Twitter流媒体API获取输入并用它做非常基本的事情。我最终的目标是有几个这样的进程在运行(可能使用System Daemon PEAR类进行守护进程),我希望能够通过一些治理过程(也是PHP脚本)来管理它们。通过管理我的意思是基本操作,如停止/启动和(最关键的)自动重新启动一个崩溃的进程。

我很感激任何关于如何最好地处理这个过程管理角度的指针。如果这个问题过于宽泛,再次表示歉意,如果有必要的话,可以提出更加严密的调查问题。感谢阅读,我期待着您的回答。

+0

仅供参考我已经设置了“Supervisor”,一个用于管理流程的Python应用程序,这似乎正是我所需要的! 这是从[Run php script as daemon process]链接的(http://stackoverflow.com/questions/2036654/run-php-script-as-daemon-process) - 由Pekka在下面指出(再次感谢!) 。主管本身可以在这里找到(http://supervisord.org/)。 – BigglesZX 2010-04-09 10:46:59

回答

3

我认为有持续性过程的推荐方法是不是做在PHP在所有;)

但这里有一些相关的问题,它看起来像一些反馈包含这样一些好的想法和经验。

更多在search

+0

这是超级 - 你发布的第二个链接的确确实产生了许多有用的链接!现在研究。感谢您的输入 :)。 – BigglesZX 2010-04-09 09:27:57

2

这在运行持久PHP脚本的上下文中不起作用,但Cron对于在不同时间和不同时间间隔运行脚本非常方便。不用一直运行的PHP脚本,停止并启动各种其他脚本,您可以使用Cron以适当的时间间隔运行它们。

+0

根据要求,这是一个很好的方法。您也可以使用它来监视正在进行的过程;检查每分钟是否仍在运行,如果失败则会自动重新启动。取决于您可以采取多少停机时间,但它正在阅读供稿,然后每分钟听起来都很好。 – 2010-04-09 09:33:58

0

您希望这样做的方式是可能的,但会很复杂且相对难以维护。

如果你用不同的方式来看它,而不是连续不断地蒸汽,你可能会定期地在数据中分块。从技术上讲,它仍然是流媒体,特别是像Twitter这样的Feed。

如果某些饲料实时抽出,您可能会错过其中的一些数据,那么这可能不适合您。

它更容易管理启动和停止以及管理少量数据的进程。他们都可以检查数据库中的控制数据并更新状态。另外,使用cron是一种真正的乐趣。

这就是我现在要做的。

相关问题