建议的命令行应用程序的Web前端的通信模式

时间:2011-06-07 19:03:29

标签: perl web-applications web-frontend inter-process-communicat

我有一个perl应用程序,它处理来自本地文件系统的文本文件(将其视为一个过于复杂的grep)。 我想设计一个webapp,允许远程用户通过设置所需的参数来调用perl应用程序。 一旦它运行,就需要在perl应用程序和webapp之间进行某种关于进程状态的通信(运行,完成%,完成)。 哪个是两个流程之间建议的沟通方式?我在数据库表中思考,但我不确定这是个好主意。

任何建议表示赞赏。

2 个答案:

答案 0 :(得分:1)

堆叠器,继续编辑此答案以添加代码示例或链接到它们。

DrNoone,我想到了两种方法。

  1. 回调

    您的greppy应用程序需要提供一个回调函数,该函数返回状态,并由Web应用程序定期调用。

  2. 事件

    如果您已经在使用Web服务器/应用程序框架来公开可以从外部应用程序使用的事件循环(在Perl领域中不太可能),那么这是有意义的。 greppy应用程序在状态更改时触发事件,Web应用程序附加/侦听它们并相应地执行操作。


  3. 对于你想象的IPC,普通的数据库并不合适。查看消息队列。对于优秀的互操作,请选择符合AMPQ的实现。

答案 1 :(得分:0)

如果您使用open($handle, "cmd |")运行该过程,您可以实时读取结果并在响应打开时将它们直接打印到STDOUT。这可能是最简单的方法。