我有一个PHP的Web应用程序。该应用程序的一个组件是将数据提交到后端管道(也用PHP编写)。 管道是外部脚本,我的应用程序使用'exec' php函数调用它。管道是一个多步骤管道,它执行多个程序,从之前运行的程序中获取输入。我希望能够在提交给管道的应用程序页面上显示一条消息,并完成管道中的每个步骤,例如
第1步完成......现在进行第2步。 第2步完成......现在进行第3步。
依此类推。
我愿意使用javascript / AJAX来执行此操作,以及与PHP兼容的任何其他语言。
非常感谢任何帮助。
答案 0 :(得分:2)
假设你有一些支持PHP前端和管道的数据库的假设,你不需要特别需要与PHP兼容的东西,而是可以与你的数据库连接的东西。
如果没有关于您设置/尝试过的内容的任何进一步细节等,我只能概述我将在这种情况下使用的工作流程。
使用数据库作为中间人将是最简单和最灵活的方法。如果你对它们更熟悉,你也可以使用其他语言,只要它们与你在PHP /管道端使用的数据库兼容。
修改强>
虽然我没有关于你想要做什么的教程的任何链接,但是它背后有一些基础可以用来拼凑你的解决方案:
I would start by getting your pipeline (processing) script to run in the background at interval using cron.或者,您可以使用类似this PHP-Daemon framework的内容来守护该管道,以便它在后台运行。也许有一个cron任务来检查它是否正在运行并在需要时重新启动它。
从那里,您可以在数据库中构建一个表,其中包含有关当前处理任务的状态更新,并构建一个PHP脚本,用于检查给定任务的状态并输出有关它的JSON数据。使用AJAX请求可以轻松读取此JSON数据,其中最简单的可能是jQuery's .ajax() method。这可以在客户端“状态”页面上以间隔调用,在每个“循环”结束时使用setTimeout
调用来每X秒轮询一次状态更改。这将是您所追求的最简单的实现,虽然不是最佳表现或最佳方式。
因此,此处的常规工作流程将更改为:
status.php?task=12345
的处理页面。status.php
脚本开始在JSON代码中返回不同的状态信息,并显示给用户。