作者aaa7513231 (渾沌與秩序)
看板PHP
標題[請益] 大量運算執行中,進度的回傳
時間Fri Apr 15 15:35:07 2016
大家好,我目前寫的一支PHP
執行計算並貼到Excel上去
但他的執行時間可能要到達20秒以上
這樣網頁的使用者一定會覺得很困惑不知道檔案是否有在執行還是掛了
想請問這樣大執行運算的程式大家會怎樣寫
並且做錯誤管理,因為我也常常發生其中一段計算有問題
就整個檔案不能下載
希望大家能提供意見,謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.29.189
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1460705709.A.0C5.html
1F:推 LaPass: 用命令列去執行 04/15 15:44
2F:→ LaPass: 先讓網頁傳回結果要使用者等,然後用命令列去call php, 04/15 15:45
3F:→ LaPass: 執行耗時的部份。還有php本身就不適合幹這種事情.... 04/15 15:46
4F:→ aaa7513231: 我比較想知道說,我希望讓網頁可以知道計算進度的話 04/15 16:01
5F:→ aaa7513231: 除了我網頁設計時器去讀資料庫跟我PHP紀錄進度在資料 04/15 16:02
6F:→ aaa7513231: 庫外,有沒有其他比較恰當的做法 04/15 16:02
7F:推 springman: 大量運算的話,用 C 語言執行速度還是比較快。 04/15 16:27
8F:推 LaPass: ajax websocket 選一個,基本上就是這樣 04/15 16:40
9F:推 hung0724: 要及時的process bar這樣? 04/15 17:44
10F:推 rockmanalpha: 用Ajax比較好 PHP也有辦法在執行中強制輸出內容 04/15 18:14
11F:→ rockmanalpha: 但這種辦法無法配合介面顯示 用Ajax比較好 04/15 18:15
12F:推 shadowjohn: 進度定期噴到暫存檔,ajax定期讀取 04/15 18:47
13F:→ aaa7513231: ajax應該沒辦法回應很多段吧?有考慮 04/16 01:26
14F:→ aaa7513231: 用stocket,對他不是很熟所以才詢問大家 04/16 01:27
15F:→ aaa7513231: 的意見 04/16 01:27
16F:→ aaa7513231: 然後會用php計算是因為我後台只會用php跟 04/16 01:29
17F:→ aaa7513231: Python,他運算很久應該是因為大量的資料 04/16 01:29
18F:→ aaa7513231: 庫抓取分析,所以優化程式碼可能沒辦法 04/16 01:29
19F:推 shadowjohn: 是你不會...不是不能 04/16 01:34
20F:→ MOONRAKER: 你"應該"不怎麼熟ajax對不對。 04/16 17:42
23F:→ imcar: 利用前端ajax去讀後端程式寫的json,把進度或錯誤都寫到json 05/02 20:33