一尘不染

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

php

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

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

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

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

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

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

谢谢大家


阅读 220

收藏
2020-05-29

共1个答案

一尘不染

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

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

因此,我建议:

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

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

2020-05-29