PHP shell_exec()-直接运行,或执行cron(bash/PHP)并包含MySQL层?

PHP shell_exec()-直接运行,或执行cron(bash/PHP)并包含MySQL层?,php,linux,security,optimization,shell-exec,Php,Linux,Security,Optimization,Shell Exec,很抱歉,如果标题不清楚-我不太确定该怎么说 我在做什么 我正在运行一个Linux命令,将数据输出到一个变量中,解析数据,并将其作为数组输出。数组值将使用PHP显示在页面上,该PHP页面输出每10秒通过AJAX请求一次,因此实际上,数据将每10秒检索和显示/更新一次。在每个请求上可能会有多达10000个字符被解析,尽管这通常要低得多 另类想法 我想知道是否有更好的*替代方法,每10秒检索一次数据,因为多个用户我认为使用单独的cron作业进行数据处理的想法是正确的。你说得对-直接从PHP脚本执行服务

很抱歉,如果标题不清楚-我不太确定该怎么说

我在做什么

我正在运行一个Linux命令,将数据输出到一个变量中,解析数据,并将其作为数组输出。数组值将使用PHP显示在页面上,该PHP页面输出每10秒通过AJAX请求一次,因此实际上,数据将每10秒检索和显示/更新一次。在每个请求上可能会有多达10000个字符被解析,尽管这通常要低得多

另类想法


我想知道是否有更好的*替代方法,每10秒检索一次数据,因为多个用户我认为使用单独的cron作业进行数据处理的想法是正确的。你说得对-直接从PHP脚本执行服务器命令不是最安全的方法,通常应该避免


但是,从性能的角度来看,您可能也不希望经常访问MySQL数据库来获取数据,尤其是在它总是在更改和更新的情况下。我建议使用像Memcache这样的key-val存储系统,或者如果没有太多可用内存,使用磁盘/内存混合存储的系统。后台进程将定期更新密钥的值,然后从主web服务器进程访问该值。

我认为使用单独的cron作业进行数据处理的想法是正确的。你说得对-直接从PHP脚本执行服务器命令不是最安全的方法,通常应该避免


但是,从性能的角度来看,您可能也不希望经常访问MySQL数据库来获取数据,尤其是在它总是在更改和更新的情况下。我建议使用像Memcache这样的key-val存储系统,或者如果没有太多可用内存,使用磁盘/内存混合存储的系统。您的后台进程将定期更新密钥的值,然后您可以从主web服务器进程访问该值。

如果您要每10秒为所有用户生成所需的所有信息,那么您可能应该:

在cron作业中使用PHP 以要提供的格式生成所需的数据 将输出文件保存在web文件夹中 让客户端将其作为静态文件检索
如果您打算每10秒为所有用户提供所需的所有信息,那么您可能应该:

在cron作业中使用PHP 以要提供的格式生成所需的数据 将输出文件保存在web文件夹中 让客户端将其作为静态文件检索
*定义:更好{更合适、更有利或更明智|开始这项工作的时机再好不过了|借钱可能更好}是的,它每秒钟都在变化。但我只需要最后10秒钟的数据。要获取数据并将其存储在MySQL数据库中,数据来自哪里?数据可用后,如何立即将其写入数据库?信息必须在多大程度上立即提供给用户?检索数据需要多长时间?我开始认为您应该在需要时创建数据。@symcbean:使用我文章底部的shell_exec检索数据,并返回一个字符串列表,该列表将被反复解析以获取我需要的数据。远程传输输出数据。我猜,数据需要立即写入数据库,以便我的脚本在几秒钟后检索。这些信息将被任何用户在web应用程序上看到,并将每10秒为他们更新一次,直到他们不再打开页面。*定义:更好{更合适、更有利或更明智|开始这项工作的时间再合适不过了|借钱可能更好}是的,它每秒钟都在变化。但我只需要最后10秒钟的数据。要获取数据并将其存储在MySQL数据库中,数据来自哪里?数据可用后,如何立即将其写入数据库?信息必须在多大程度上立即提供给用户?检索数据需要多长时间?我开始认为您应该在需要时创建数据。@symcbean:使用我文章底部的shell_exec检索数据,并返回一个字符串列表,该列表将被反复解析以获取我需要的数据。远程传输输出数据。我猜,数据需要立即写入数据库,以便我的脚本在几秒钟后检索。这些信息将被web应用程序上的任何用户看到,并将每10秒为他们更新一次,直到他们不再打开页面。不会想到使用静态文本文件。反复写信给
nd读取-这会比memcached选项更高效吗?是的,它会比memcached更高效。一个警告:如果memcached与web服务器在同一台机器上运行,那么memcached可能比文件访问更快。但是如果你要走这条路线,你可能会考虑APC而不是Mycache来缓存。不会想到使用静态文本文件。重复写入和读取这些文件-这会比memcached选项更高效吗?是的,它会比memcached更高效。一个警告:如果memcached与web服务器在同一台机器上运行,那么memcached可能比文件访问更快。但是如果你要走那个路线,你可以考虑APC而不是Mycache来缓存。