的執行我有一個PostgreSQL-PLSH功能PostgreSQL的PL/sh的異步外部過程
CREATE OR REPLACE FUNCTION MDN_REG_LOCATE(MDN VARCHAR(50), CALLID VARCHAR(50)) RETURN AS '
#!/bin/sh
/home/infoobjects/Projects/java/execute.sh $1 $2 &
logger -t "data" "$1$2"
' LANGUAGE plsh;
和execute.sh呼叫是一個Java過程(方法),它需要3分鐘來執行。我使腳本異步,在腳本末尾追加&(execute.sh) 我的問題是postgresql函數仍然等待結果發生並且不以異步方式進行操作,儘管shell腳本的行爲異步,因爲記錄器處於上面的函數在jst調用MDN_REG_LOCATE()後記錄下來,但這個postgresql函數(MDN_REG_LOCATE)仍然等待3分鐘的完成過程結束,我不知道我缺少什麼,請幫助我。
Thanks In Adv。
首先,PL/sh通常是錯誤的答案。用'LISTEN''和一個觸發器來發送'NOTIFY'時,你可能會更好。然後,客戶端可以使用'NOTIFY'中發送的參數或從隊列表中獲取的參數執行任務。 –