Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP后台进程的逻辑解释_Php_Sockets_Shell_Terminal_Background Process - Fatal编程技术网

PHP后台进程的逻辑解释

PHP后台进程的逻辑解释,php,sockets,shell,terminal,background-process,Php,Sockets,Shell,Terminal,Background Process,我是一个中等到优秀的PHP编程人员,有终端/shell脚本方面的经验,但我想了解的是后台进程背后的逻辑,当然不是Cron或Cron作业,而是连续的数据流 我最近和一个制作了一个小web应用程序的人聊过,这个应用程序使用twitter流API收集推文并保存到数据库中。现在听起来很简单,但所有这些都是作为一个过程在后台发生的。我不习惯的是: 调用进程->进程完成->处理来自进程的数据 与此不同的是,它一直在不停地发生。我记得也有关于插座连接的讨论 因此,我的问题是: 在执行后台进程时,它是特定功能的

我是一个中等到优秀的PHP编程人员,有终端/shell脚本方面的经验,但我想了解的是后台进程背后的逻辑,当然不是Cron或Cron作业,而是连续的数据流

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

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

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

因此,我的问题是:

  • 在执行后台进程时,它是特定功能的连续循环吗?这就是我能从逻辑上得出的全部结论,或者它是如何“保持开放”并发生的
  • 在这个等式中,套接字连接做什么
  • 运行这种类型的进程是否会继承任何形式的延迟
  • 我知道这不是一个“特定代码”类型的问题,但我找不到关于这类问题的太多信息

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

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

    二,。在这个等式中,套接字连接做什么

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

    三,。运行这种类型的进程是否会继承任何形式的延迟


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

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


    PHP有许多连接资源的方法,其中大多数使用套接字。如果您使用
    file\u get\u contents()
    连接到Web服务器,那么您也在使用套接字,您可能不会注意到这一点。

    如果您想学习有关后台进程的教程: -真的很有用。
    Daemontools使维护后台进程(守护进程)变得非常容易。

    我想您真正想了解的是。在cron中加入一个PHP脚本,它将“自己神奇地完成任务”。)感谢您的响应,它不是cron,而是一个开放的、连续的连接,根本没有计时器。从套接字进行阻塞读取将挂起脚本,直到有数据可读取为止。如果您在循环中读取,那么PHP将始终运行,但只有在数据实际可用时才消耗CPU。。。点击api,获取数据,将数据保存到数据库。如果这个过程开放2天,它会继续添加通过api获得的任何新数据吗?你明白我说的了吗,一个api调用会保持一个调用2天并保持开放吗?它是否会寻找新数据并再次呼叫?取决于您希望遵循的模型,从技术上讲,许多事情都是可能的。有关流程(甚至是分布式的)之间的更多交互选项,请参阅。PHP也支持它,您可以轻松设置后台进程。请详细说明OP(原始海报)在其问题中提出的3点,而不仅仅是指向fluffy站点的链接。