0

我是一名中等到优秀的 PHP 程序员,并且有终端/shell 脚本的经验,但我试图理解的是后台进程背后的逻辑,而且肯定不是 Cron 或 Cron Jobs,而是持续的数据流。

我最近与一个开发了一个小网络应用程序的人交谈,该应用程序与 twitter 流 API 和Phirehose一起使用来收集推文并将它们保存到数据库中。现在听起来很简单,但所有这些都作为一个过程在后台发生。我不习惯的是:

调用进程 -> 进程完成 -> 处理来自进程的数据。

与此不同的是,它一直在不停地发生。我记得也有关于套接字连接的讨论。

所以我的问题是:

  1. 执行后台进程时,是否是特定功能的连续循环?这就是我能从逻辑上得出的结论,或者它是如何“保持开放”并发生的?
  2. 套接字连接在这个等式中做了什么?
  3. 运行这种类型的进程是否会继承任何形式的延迟?

我知道这不是“特定于代码”类型的问题,但我找不到有关此类问题的太多信息。

4

3 回答 3

2

使用 PHP,很可能安排一个 cronjob 每隔一小时左右执行一次脚本。该脚本不会连续运行。

PHP 有多种连接资源的方式,其中大部分使用套接字。如果您确实file_get_contents()要连接到网络服务器,那么您也在使用套接字,您可能只是没有注意到它。

于 2012-04-10T15:58:47.533 回答
1

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

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

2. 这个等式中的套接字连接有什么作用?

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

3. 运行此类进程是否会继承任何形式的延迟?

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

于 2012-04-10T15:57:50.827 回答
-1

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

于 2012-09-12T08:11:24.617 回答