在后台执行PHP MYSQL

在后台执行PHP MYSQL,php,mysql,background,web,Php,Mysql,Background,Web,是否可以在网站/Web服务器(具有完全根访问权限)上运行在后台调用mysql查询的PHP脚本。我的意思是: 用户单击以处理某些内容—但是,为了防止用户等待运行查询,它看起来应该是为用户完成的—他不必在浏览器中等待PHP/MYSQL 但是,脚本应该在服务器上运行并完成 我该怎么做?如果PHP中没有有效的解决方案,那么使用其他语言是否可行 我不是在说cron作业——我在ubuntu机器上(没有windows) 是否适合在后台运行许多PHP脚本(都是一样的)-Nginx是更好的解决方案还是Apache

是否可以在网站/Web服务器(具有完全根访问权限)上运行在后台调用mysql查询的PHP脚本。我的意思是:

用户单击以处理某些内容—但是,为了防止用户等待运行查询,它看起来应该是为用户完成的—他不必在浏览器中等待PHP/MYSQL 但是,脚本应该在服务器上运行并完成

我该怎么做?如果PHP中没有有效的解决方案,那么使用其他语言是否可行

我不是在说cron作业——我在ubuntu机器上(没有windows)


是否适合在后台运行许多PHP脚本(都是一样的)-Nginx是更好的解决方案还是Apache?它是否相关?

我在这里可以推荐的最佳体系结构可能是队列/工作者设置。例如,这很简单(或者:,或类似的高级队列)。您可以启动一些在后台运行的工作程序,这些工作程序可以处理数据库查询(我倾向于使用DAEMONIZE命令对它们进行后台监控)。尽可能多地加速,以支持并行运行;由于这项工作显然有些繁重,因此您需要小心控制运行工人的数量。然后,无论何时需要运行此作业,您都会为Gearman workers发出一个命令,然后立即返回给您的用户。工人们一有空就会处理这个请求。这假设您不需要为用户提供任何特定的反馈,工作可以随时完成,而不需要任何人立即知道


如果您确实需要在作业完成时提供用户反馈,您可能只想尝试通过AJAX执行请求。对于真正复杂的设置和实时反馈,您可以使用Gearman方法,通过。不过,这是一个相当复杂的设置。

我在这里可以推荐的最佳体系结构可能是队列/工作者设置。例如,这很简单(或者:,或类似的高级队列)。您可以启动一些在后台运行的工作程序,这些工作程序可以处理数据库查询(我倾向于使用DAEMONIZE命令对它们进行后台监控)。尽可能多地加速,以支持并行运行;由于这项工作显然有些繁重,因此您需要小心控制运行工人的数量。然后,无论何时需要运行此作业,您都会为Gearman workers发出一个命令,然后立即返回给您的用户。工人们一有空就会处理这个请求。这假设您不需要为用户提供任何特定的反馈,工作可以随时完成,而不需要任何人立即知道


如果您确实需要在作业完成时提供用户反馈,您可能只想尝试通过AJAX执行请求。对于真正复杂的设置和实时反馈,您可以使用Gearman方法,通过。不过,这是一个相当复杂的设置。

解决方案是Ajax,它基本上是触发一些PHP的javascript。您也可以在ubuntu/linux中运行cron作业。问题是用户在使用浏览器时应该如何从中获取数据。。您需要将此预先计算的数据保存在某个位置,并将其输出到另一个基于Web服务器的脚本中。。。这就是你想要做的吗?就像@ArthurBALAGNE说的:ajax如果用户点击后不需要关闭页面,你可以使用异步ajax请求。异步请求还允许您在完成所有查询时通知用户:)。检查您是否正在使用jquery浏览器用户是否需要查看此后台执行的结果?解决方案是Ajax,它基本上是触发一些PHP的javascript。您还可以在ubuntu/linux中运行cron作业。问题是用户在使用浏览器时应该如何从中获取数据。。您需要将此预先计算的数据保存在某个位置,并将其输出到另一个基于Web服务器的脚本中。。。这就是你想要做的吗?就像@ArthurBALAGNE说的:ajax如果用户点击后不需要关闭页面,你可以使用异步ajax请求。异步请求还允许您在完成所有查询时通知用户:)。检查是否正在使用jquery浏览器用户是否需要查看此后台执行的结果?