1

的web前端推薦的通信模式I有一個perl應用程序,它從本地文件系統處理的文本文件(考慮它作爲一個過於複雜的grep)。 我想設計一個webapp,它允許遠程用戶通過設置所需的參數來調用perl應用程序。 運行後,perl應用程序和web應用程序之間需要進行某種關於進程狀態(運行,%完成,完成)的通信。 這將是兩個過程之間推薦的溝通方式?我在數據庫表中想,但我不確定這是個好主意。命令行應用

任何建議讚賞。

+0

完成該過程需要多長時間?你會同時允許多個網絡用戶嗎? – 2011-06-07 23:51:31

+0

它取決於參數,但在幾分鐘到幾個小時之間。網絡應用程序應該照顧工作排隊。 – DrNoone 2011-06-08 17:35:25

回答

1

堆垛機,繼續編輯這個答案示例代碼或鏈接添加到他們。

DrNoone,有兩種方法浮現在腦海中。

  1. 回調

    你greppy的應用程序需要提供恢復狀態並定期由Web應用程序調用的回調函數。

  2. 事件

    如果你已經使用Web服務器/應用程序框架,它暴露了一個事件循環從外部應用程序使用的(在Perl的土地,而不太可能)這是有道理的。 greppy應用程序會觸發狀態更改事件,並且Web應用程序會附加/監聽它們並採取相應措施。


對於IPC如你想象它,一個簡單的數據庫也不是那麼適合。查看消息隊列。對於偉大的互操作性,請選擇符合AMPQ的實施。

+0

我應該換一個Webservice的perl的應用程序,讓web應用程序調用web服務,或者它是一個不必要的層之前被格式化? – DrNoone 2011-06-08 11:45:50

+0

是的,沒有必要。 – daxim 2011-06-08 11:50:30

0

如果您運行使用open($handle, "cmd |")可以實時讀取結果並將其打印直接到標準輸出,而你的反應是打開的進程。這可能是最簡單的方法。

+0

過程輸出是巨大的,應該在打印 – DrNoone 2011-06-07 19:10:14