应用程序设计 - 带WebPage FrontEnd的守护进程

时间:2009-06-05 00:37:43

标签: asp.net daemon webpage

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

我认为Named Pipes不会让Web客户端更容易自动轮询,但它可能使服务器能够更好地通知另一个进程转换已完成 - 并最终排队消息到网络浏览器。

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

答案 1 :(得分:0)

我们过去做过商业化的解决方案基本上是守护程序写入日志(通常是DB),带有日期/时间戳,关于它的作用,而Web前端只显示最新的X条目数量日志,通过一个小的切换来隐藏所有“查找目录,没有找到文件”消息,工作得相当好,我们稍后使用AJAX升级它(定时器每20秒重新加载一次)。