1

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

任何建议表示赞赏。

4

2 回答 2

1

Stackers,继续编辑此答案以添加代码示例或链接。

DrNoone,我想到了两种方法。

  1. 打回来

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

  2. 事件

    如果您已经在使用一个 Web 服务器/应用程序框架,该框架公开了一个可从外部应用程序使用的事件循环(在 Perl 领域不太可能),那么这是有道理的。greppy 应用程序在状态更改时触发事件,Web 应用程序附加/监听它们并采取相应的行动。


对于您所设想的 IPC,普通数据库不太适合。而是查看消息队列。要获得出色的互操作性,请选择符合 AMPQ 的实施。

于 2011-06-08T09:32:17.443 回答
0

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

于 2011-06-07T19:07:00.350 回答