1
我在perl中有一個處理get/post請求的Dancer應用程序。用Perl的舞者在子進程中分叉運行代碼
我的一個示例將在下面:
post '/handle_data' => sub {
# perform some calculations
...
# store some data
...
# do some long running tasks
...
};
我的問題:有一個簡單的方法來做到在另一個進程長時間運行的任務,而不會阻塞請求?
我已經嘗試fork and return
在父進程中,exit
後長兒童運行任務,但似乎都阻止發送的響應,直到孩子完成。
任何幫助表示讚賞。
編輯:
我最終切換到一個完整的作業服務器,具體的Gearman
經過反覆試驗調試,這個工程,我以爲會。 我的問題是,我在響應頭之前打印出調試信息...... :) – Blaskovicz
我對此有疑問:這是否分叉整個舞者流程或只是路線下的功能?我不熟悉perl中的線程,但是我爲許多項目使用了舞者,這在一段時間內可能會有用。 – Demnogonis
它分化了整個過程;這就是爲什麼你需要我的例子中的'exit',否則分叉的子進程一旦離開路由處理器就可能等待新的連接。 –