PHP后台进程的逻辑解释
我是一个中等到优秀的PHP编程人员,有终端/shell脚本方面的经验,但我想了解的是后台进程背后的逻辑,当然不是Cron或Cron作业,而是连续的数据流 我最近和一个制作了一个小web应用程序的人聊过,这个应用程序使用twitter流API收集推文并保存到数据库中。现在听起来很简单,但所有这些都是作为一个过程在后台发生的。我不习惯的是: 调用进程->进程完成->处理来自进程的数据 与此不同的是,它一直在不停地发生。我记得也有关于插座连接的讨论 因此,我的问题是:PHP后台进程的逻辑解释,php,sockets,shell,terminal,background-process,Php,Sockets,Shell,Terminal,Background Process,我是一个中等到优秀的PHP编程人员,有终端/shell脚本方面的经验,但我想了解的是后台进程背后的逻辑,当然不是Cron或Cron作业,而是连续的数据流 我最近和一个制作了一个小web应用程序的人聊过,这个应用程序使用twitter流API收集推文并保存到数据库中。现在听起来很简单,但所有这些都是作为一个过程在后台发生的。我不习惯的是: 调用进程->进程完成->处理来自进程的数据 与此不同的是,它一直在不停地发生。我记得也有关于插座连接的讨论 因此,我的问题是: 在执行后台进程时,它是特定功能的
是的,任何形式的间接行为都有代价。此外,如果您并行运行多个进程,那么计算机系统管理这些多个进程也会有一些开销(现在它也会这样做,但只是说,如果只有一个进程,就没有什么可管理的了)。使用PHP,很可能cronjob计划每小时左右执行一次脚本。脚本不会连续运行
PHP有许多连接资源的方法,其中大多数使用套接字。如果您使用
file\u get\u contents()
连接到Web服务器,那么您也在使用套接字,您可能不会注意到这一点。如果您想学习有关后台进程的教程:
-真的很有用。
Daemontools使维护后台进程(守护进程)变得非常容易。我想您真正想了解的是。在cron中加入一个PHP脚本,它将“自己神奇地完成任务”。)感谢您的响应,它不是cron,而是一个开放的、连续的连接,根本没有计时器。从套接字进行阻塞读取将挂起脚本,直到有数据可读取为止。如果您在循环中读取,那么PHP将始终运行,但只有在数据实际可用时才消耗CPU。。。点击api,获取数据,将数据保存到数据库。如果这个过程开放2天,它会继续添加通过api获得的任何新数据吗?你明白我说的了吗,一个api调用会保持一个调用2天并保持开放吗?它是否会寻找新数据并再次呼叫?取决于您希望遵循的模型,从技术上讲,许多事情都是可能的。有关流程(甚至是分布式的)之间的更多交互选项,请参阅。PHP也支持它,您可以轻松设置后台进程。请详细说明OP(原始海报)在其问题中提出的3点,而不仅仅是指向fluffy站点的链接。