我有一个perl应用程序,它处理来自本地文件系统的文本文件(将其视为一个过于复杂的grep)。 我想设计一个webapp,允许远程用户通过设置所需的参数来调用perl应用程序。 一旦它运行,就需要在perl应用程序和webapp之间进行某种关于进程状态的通信(运行,完成%,完成)。 哪个是两个流程之间建议的沟通方式?我在数据库表中思考,但我不确定这是个好主意。
任何建议表示赞赏。
答案 0 :(得分:1)
堆叠器,继续编辑此答案以添加代码示例或链接到它们。
DrNoone,我想到了两种方法。
回调
您的greppy应用程序需要提供一个回调函数,该函数返回状态,并由Web应用程序定期调用。
事件
如果您已经在使用Web服务器/应用程序框架来公开可以从外部应用程序使用的事件循环(在Perl领域中不太可能),那么这是有意义的。 greppy应用程序在状态更改时触发事件,Web应用程序附加/侦听它们并相应地执行操作。
对于你想象的IPC,普通的数据库并不合适。查看消息队列。对于优秀的互操作,请选择符合AMPQ的实现。
答案 1 :(得分:0)
如果您使用open($handle, "cmd |")
运行该过程,您可以实时读取结果并在响应打开时将它们直接打印到STDOUT。这可能是最简单的方法。