PHP后台进程的逻辑解释

时间:2012-04-10 15:48:56

标签: php sockets shell terminal background-process

我是一个中等到良好的PHP程序员,并且有终端/ shell脚本的经验,但我想要解决的是后台进程背后的逻辑,并且肯定不是Cron或Cron Jobs,而是持续流程数据。

我最近与一位制作了一个与Twitter流媒体API和Phirehose合作的小型网络应用程序的人进行了交谈,以收集推文并将其保存到数据库中。现在听起来很简单,但所有这些都在后台作为一个过程发生。我不习惯的是:

通话流程 - >流程完成 - >处理来自流程的数据。

这有什么不同之处在于它始终不停地发生。我记得也有关于socket连接的讨论。

所以我的问题是:

  1. 执行后台进程时,是否是特定功能的连续循环?这就是我在逻辑上可以得出的结论,或者它是如何“保持开放”并发生的?
  2. 套接字连接在这个等式中做了什么?
  3. 任何形式的延迟都是继承运行此类流程吗?
  4. 我知道这不是“特定代码”类型的问题,但我找不到有关此类问题的大量信息。

3 个答案:

答案 0 :(得分:2)

使用PHP,cronjob最有可能每小时左右执行一次脚本。该脚本不会连续运行。

PHP有许多连接资源的方法,其中大多数使用套接字。如果您file_get_contents()连接到网络服务器,那么您也在使用套接字,您可能根本就没有注意到它。

答案 1 :(得分:1)

  

1。在执行后台进程时,它是否是特定函数的连续循环?这就是我可以在逻辑上得出的结论,或者它是如何“保持开放”并发生的?

不,不需要这种连续循环。后台进程也可以被调用,运行和完成。它不再像其他任何进程一样运行。可能对后台进程没用,但可能。

  

2。套接字连接在这个等式中做了什么?

套接字有时用于允许不同进程之间的通信,也就是IPC - 进程间通信。

  

3。任何形式的延迟是否都继承了这种类型的进程?

是的,每种形式的间接都需要付出代价。此外,如果您并行运行多个进程,计算机系统也会有一些管理这些多个进程的开销(现在无论如何都会这样做,但只是说,如果只有一个进程,则无需管理)。

答案 2 :(得分:-1)

如果您想学习后台流程的教程: http://thedjbway.b0llix.net/daemontools/blabbyd.html - 非常有用。 Daemontools使维护背景过程(守护进程)非常容易。