PHP 非持久进程设计 vs Python/Java

标签 php python process web uptime

目前,我正在考虑在这 3 种语言之间选择一个需要非常长的正常运行时间的项目(正常运行时间比性能更重要)。

我从事 PHP 开发已有一段时间了,不介意切换到“更好”的语言,例如 Python 或更(可能)更专业的语言,例如 Java,但有一件事阻碍了我:

在 PHP 中,假设一个用户创建了一些格式错误/奇怪的请求,导致我的代码崩溃 - 只有那个用户会受到影响。其他用户可以继续发出请求,因为每个 HTTP 请求都会调用一个新的 PHP 进程。

考虑 Python 或 Java:如果用户使我的后端代码崩溃,则只有一个进程在运行,整个 Web 应用程序都会崩溃,这将是一场灾难。

我的问题是,是否有一个词可以描述这两种不同的 Web 编程方法?另外,我是否遗漏了任何明显的东西,或者 PHP 是否真的比 Python/Java/其他持久进程方法具有如此大的优势,如果是这样,为什么 Python 不采用这种方法?

最佳答案

我正在寻找的是有人给我指出这样一篇文章:

http://www.electricmonk.nl/docs/apache_fastcgi_python/apache_fastcgi_python.html

Python可以通过WSGI在后台持久运行,可以有很多解释器等待一个请求。如果其中一个解释器崩溃,这不是问题,因为其他解释器正在等待,并且因为 Apache 可以自动重启任何崩溃的解释器。

Python 也可以像 PHP 一样在每次请求时手动调用,但速度较慢。

关于PHP 非持久进程设计 vs Python/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152593/

相关文章:

php - 查询按 "date"字段排序的两张表

php - 尝试使用 PHP 5.4.30 在 IIS 8 上运行 phpMyAdmin 4.2.7 时出现 "Fatal Error: Call to undefined function mb_detect_encoding()"

python - '函数 imshow 中的 libpng 错误 : Invalid IHDR data' and cpp:331: error: (-215) size. width>0 && size.height>0

python - Laravel symfony 进程超过 60 秒超时

multithreading - 线程与进程的一般情况

javascript - 添加全选复选框

php - 在 PHP 中是否可以创建接口(interface)别名而不是类别名?

python - 查找一系列重复元素的更优雅方式

python - 如何让 cx-oracle 将查询结果绑定(bind)到字典而不是元组?

kernel - 为什么/proc/PID/status 中的进程名称与包名称或 ps 命令不匹配