对不起,如果标题含糊不清 - 我不太确定如何措辞!
我在做什么
我正在运行一个 Linux 命令来将数据输出到变量中,解析数据并将其作为数组输出。数组值将显示在使用 PHP 的页面上,并且此 PHP 页面输出每 10 秒通过 AJAX 请求一次,因此实际上每 10 秒将检索和显示/更新数据。每个请求可能解析多达 10,000 个字符,尽管这通常要少得多。
另类的想法
我想知道是否有更好的*替代方法每 10 秒检索一次此数据,因为多个用户 (<10) 将自动为他们执行此命令。
在服务器上运行的 cronjob 可以执行 bash 或 php(哪个更快?)来获取数据并将其存储在 MySQL 数据库中。然后,对 PHP 输出的任何 AJAX 调用都将返回 MySQL 数据库中的值,而不是每 10 秒直接调用一次执行服务器代码。
为什么?
我知道直接从 PHP 运行 exec 存在安全问题,并且(我希望这不是微优化)我担心服务器上的 CPU 使用率。服务器正在运行一个sempron处理器。是的,它们仍然存在。
只有当用户在页面上时才执行(想法#1)意味着服务器没有运行不需要运行的代码。但是,这是缓慢且不安全的吗?
以防万一 linux 命令的类型可能有助于确定它的效率:
shell_exec("transmission-remote $host:$port --auth $username:$password -l");
我希望我上面概述的两种方法在效率和安全级别上存在差异,这不仅仅是微优化。如果有更好的替代方法*,我很想了解这些!:)