什么是守护进程?他们的实际用途?使用php?

时间:2010-11-07 14:05:23

标签: php daemon

有人可以用两个词来解释我,什么是守护进程以及它们在php中的用途?

我知道这是一个一直在运行的过程。 但我无法理解它在php应用程序中的用途?

有人可以举例说明吗? 我可以使用守护进程来减少我的应用程序的内存使用量吗?

据我了解,守护进程可以保存数据并根据请求提供,所以基本上我可以在那里存储大多数可用数据,以避免从每个访问者的mysql中获取数据?

或者我完全错了? :)

谢谢;)

4 个答案:

答案 0 :(得分:0)

  

有人可以用两个词来解释我,什么是守护进程以及它们在php中的用途?

cli应用程序或流程

  

我知道这是一个一直在运行的过程。但我无法理解它在php应用程序中的用途?

你可以用它来做;用户或界面不可见的作业,例如数据库陈旧数据清理,计划您要在db或背景中的页面上更新部分或其他内容的任务

  

有人可以举例说明吗?我可以使用守护进程来减少我的应用程序的内存使用量吗?

我认为drupal或cron有cron脚本......也许检查它会有所帮助。减记忆?不,内存优化总是在应用程序设计或脚本编码上。

  

据我了解,守护进程可以保存数据并根据请求提供,所以基本上我可以在那里存储大多数可用数据,以避免从每个访问者的mysql中获取数据?

不,守护程序是一个脚本,但您可以创建守护程序脚本可以处理的JSON或XML数据文件。

答案 1 :(得分:0)

请参阅this answer有关将PHP用于守护程序的信息。有时您可能希望在PHP中派生子进程,也许在父进行其他工作时执行某些查询,然后通知父进程可以完成作业。

然而,我不会使用PHP来设置套接字服务器或类似服务器,也不会在任何其他以大于秒为单位测量执行的实例中使用PHP。

我不想阻止你进行探索和试验,只是提醒你不要过分信任超出语言能力的实现。

答案 2 :(得分:0)

守护进程是一个无休止的运行进程,只等待作业。 Web服务器(“http-daemon”)等待处理请求,打印机守护程序等待打印的内容(等等)。在Win系统上,它被称为“服务”。

如果您可以以某种方式将它用于您的应用程序,则高度取决于您的应用程序以及您希望如何使用守护程序。但我也不推荐PHP。

答案 3 :(得分:0)

因为守护程序只是一个在无限循环中运行的进程,所以守护程序是否对您的特定应用程序有帮助完全取决于守护程序和应用程序的要求。

MySQL本身作为守护进程运行,但减少MySQL调用次数的一种典型方法是将其输出缓存在Memcached中(这也不例外地作为守护进程运行)。因此,使用Memcached的优势并不在于它是一个守护进程,它是一个比MySQLd(提供一个SQL可查询数据库)更适合特定任务(缓存对象)的守护进程。

如果您的应用程序反复需要进行相同的SQL查询,那么绝对值得考虑在应用程序和MySQL之间使用Memcache或其他缓存层(其中,很可能是由守护程序提供)。