Re: [請益] 先印出訊息再執行外部指令的作法
※ 引述《Godkin (Nostalgie)》之銘言:
: 請問各位前輩,
: 小弟目前正著手製作一個網站,
: 網站的功能可讓使用者在填寫資料、上傳檔案後,
: 用email通知使用者一些資訊,
: 此時網站中有一支外部程式來處理使用者上傳的檔案
: 問題就在這環節, 因為這外部程式需要的執行時間頗久,
: 所以此時必須先在網頁上告知使用者可以先關閉瀏覽器,
: 待處理完畢之後, 再發email通知使用者連上某個link去看結果
: 我參考了網路上一些解法,
: 如pcntl_fork() 或是 proc_open()等作法
: 但仍不是很清楚這些multi-processes的概念, 像是pipe
這個地方要注意,你 fork 出來的東西,萬一 parent 死了,child 就沒了。
: 此外, 我所使用的外部程式並不是一般系統指令
: 需額外加上一些參數, 如: xxx.sh -s -t -i $input -o $output這種指令
: 能否請有經驗的前輩指點一二?
: 小弟感激不盡!
你可以考慮一下 gearman 這類的解決方案 ( http://gearman.org/ )
收到上傳檔案之後,把你要做的事情 (例如: 待處理的檔名) 透過的 Client API
寫到 Job Server ,基本上這樣就結束了,之後背景的 Worker 再處理由 Job Server
拿到的任務(待處理的檔名),處理完就把連結寄出去,讓使用者看結果。
如果覺得上面的方法太複雜,也可以弄簡單一點,自行維護一個列表,
然後用 cron 去掃那個列表來做,做完一筆就發一次信給使用者也可以。
--
The Internet: where men are men, women are men, and children are FBI agents.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.104.63
推
05/25 15:18, , 1F
05/25 15:18, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):