0

我有一个应用程序,它每五秒扫描一次输入目录,当一个作业(即文件)被放置在目录中时,应用程序读取它,处理它并在输出目录中输出另一个文件。

我的问题是,如果我想在这个应用程序上放置一个基于 Web 的前端,我将如何等待处理完成?

  • 用户提交作业
  • 作业放置在输入目录中
  • ......我在这里的网页上做什么?
  • 处理发生
  • 生成输出文件
  • ......我怎么知道工作已经完成?

我想出的两个解决方案是:

  • 从网页每隔 x 秒轮询输出目录
  • 使用 ajax 轮询 web 服务或网页,报告输出文件是否存在

服务器有更好的设计吗?换句话说,在这种情况下 TCP 或命名管道将如何提供帮助?(由于 DCOM 对象,无法使用远程处理。)

4

2 回答 2

0

我认为命名管道不会使 Web 客户端自动轮询变得更容易,但它可能使服务器能够更好地通知另一个进程转换已完成——并最终将消息排队到网页浏览器。

您可以尝试让 Web 客户端每隔几秒轮询一次以查看文件进程是否已完成,或者您可以将类似 Juggernaut 的“推送”命令发送到页面。Juggernaut 使用 Flash 在 Web 浏览器上打开一个套接字,该套接字不断地从服务器提供 JavaScript。它可能负责发送命令以提醒浏览器文件已完成,然后发出重定向。

于 2009-06-05T00:41:49.323 回答
0

我们过去在商业上完成的一个解决方案基本上是守护进程写入日志(通常是 DB),带有日期/时间戳,关于它在做什么,并且 Web 前端只显示来自日志的最新 X 数量的条目,通过一个小开关来隐藏所有“在目录中查找,未找到文件”消息,效果相当好,我们稍后使用 AJAX 升级它(每 20 秒重新加载的计时器)。

于 2009-06-05T01:32:41.000 回答