当前位置: 首页 > 面试题库 >

将PHP用于守护程序是否明智?

凤扬
2023-03-14
问题内容

我希望创建一个后台进程,并被告知这些进程通常是用C或类似的语言编写的。我最近发现PHP可用于创建守护程序,如果我应该以这种方式使用PHP,我希望得到一些建议。

这是我对守护程序的要求。

  • 不断检查行是否已添加到MySQL数据库表中
  • 对从数据库检索到的内容运行FFmpeg命令
  • 将输出插入MySQL表

我不确定我还能提供什么帮助做出这个决定。只是要补充一点,我之前没有做过C。仅Java和PHP以及基本的bash脚本。

它甚至对性能产生很大的影响吗?

请允许我的无知,我正在学习!:)

谢谢大家


问题答案:

正如其他人指出的那样,各种版本的PHP的垃圾收集器都有问题。当然,如果您知道自己的版本没有此类问题,则可以消除该问题。关键是,您
知道(确定),直到编写守护程序并通过valgrind运行它以查看已安装的PHP是否在任何给定的机器上泄漏。因此,一方面,您可能只是为了发现Zend认为已修复的问题仍然是bug,或者正在处理的是PHP的稍旧版本或某些扩展名而编写它。讨厌

另一个问题是信号有问题。以我的经验,信号处理程序并非总是可以用PHP正确输入,尤其是当信号排队而不是合并时。对于您来说,这可能不是问题,即,如果您只需要处理SIGINT
/ SIGUSR1 / SIGUSR2 / SIGHUP。

因此,我建议:

如果守护程序很简单,请继续使用PHP。如果它看起来变得相当复杂,或者分配了很多内存,则可以在用PHP制作原型后考虑使用C编写它。

我是一个相当顽固的C人。但是,我发现使用PHP快速完成一些工作没有错(除了我解释的情况)。我还认为使用PHP为可能在以后用C重写的原型制作东西没有错。例如,如果使用PHP,则与使用C中的其他接口管理回调相比,处理数据库的工作将简单得多。在这种情况下,如果“一次性完成”,您肯定会更快地完成它。



 类似资料:
  • 问题内容: 在Python文档中 它说: 线程可以标记为“守护程序线程”。该标志的重要性在于,仅保留守护程序线程时,整个Python程序都会退出。初始值是从创建线程继承的。 没有人对这意味着什么有更清楚的解释,或者有实际的示例显示了将线程设置为的位置? 为我澄清一下:因此,您唯一不希望将线程设置为的情况是,您希望它们在主线程退出后继续运行吗? 问题答案: 一些线程执行后台任务,例如发送keepal

  • 问题内容: 我正在做Java试卷,并且遇到了以下使我感到困惑的问题。 以下哪项是正确的?(选择所有适用项。) 答:当应用程序开始运行时,会有一个守护线程,其任务是执行main()。 B.当一个应用程序开始运行时,有一个非守护进程线程,其工作是执行main()。 C.由守护程序线程创建的线程最初也是守护程序线程。 D.由非守护程序线程创建的线程最初也是非守护程序线程。 关键答案是B,C,D,谁能告诉

  • 问题内容: 我已经在ubuntu 14.04上安装了docker,它告诉我安装成功。然后我进入,它返回了 我进入了 我尝试了和,得到了相同的答复: 我不知道为什么它返回了这个,我尝试使用来拉ubuntu 并得到了 请告诉我如何解决此问题,如何拉出并运行docker image。和是一样的吗? 问题答案: 您需要将当前用户添加到组中,如下所示: 另外,您可以使用以下环境变量: 然后重新启动系统。正如

  • 本文向大家介绍PHP扩展程序实现守护进程,包括了PHP扩展程序实现守护进程的使用技巧和注意事项,需要的朋友参考一下 一般Server程序都是运行在系统后台,这与普通的交互式命令行程序有很大的区别。glibc里有一个函数daemon。调用此函数,就可使当前进程脱离终端变成一个守护进程,具体内容参见man daemon。PHP中暂时没有此函数,当然如果你有兴趣的话,可以写一个PHP的扩展函数来实现。

  • 本文向大家介绍PHP守护进程实例,包括了PHP守护进程实例的使用技巧和注意事项,需要的朋友参考一下 php也是可以直接进行守护进程的启动与终止的,相对于shell来说会简单很多,理解更方便,当然了php的守护进程要实现自动重启还是要依赖于shell的crontab日程表,每隔一段时间去执行一次脚本看脚本是否需要重启,如果需要则杀掉进程删除RunFile文件,重新启动并在RunFile文件中写入pi

  • 问题内容: 我有一个查询,就是我在多个线程下面开发了一个代码,这些线程分别称为线程一和线程二,下面是代码.. 类multip实现Runnable { 现在,我希望将线程2设置为守护程序线程,它应该为线程1提供某种服务,它可以是任何类型的服务,但最后我试图实现的是,守护程序线程向非守护程序线程提供某种服务。请告知如何实现。问题是有关守护程序线程将如何向非守护程序线程提供服务的问题。 问题答案: 问题