當前位置:首頁 » 編程語言 » php排隊

php排隊

發布時間: 2023-02-13 00:59:00

『壹』 php做一個排隊等候的功能

你這個問題歸根結底是想要做一個實時在線人數的功能:

但是http請求是無狀態的,所以你沒有辦法實時知道多少人在線,就是說沒有辦法精確響應用戶把瀏覽器關了,伺服器就能知道並且把把用戶標記為下線


解決辦法:

伺服器里維護一份列表,這個列表記錄了每個用戶的session_id,有效期比如可以設置為30分鍾,在用戶每次請求的時候都刷新下這個有效期,用戶點擊退出時就刪除這個用戶的session_id。

因此統計這個列表裡未過期的sessionid個數就是當前的實時人數


這份表根據你系統的規模,可以是文本,mysql,也可以是memcache redis 都行


存在問題:

  1. 用戶只是三十分鍾停留在頁面但是沒有退出的系統把他認為下線了。這個可以通過「心跳包」來解決

  2. 用戶關閉瀏覽器但是沒有記為下線,這個就是我上面提到的 http無狀態,這個沒招


要想提高精確性就是減少有效期和心跳包的時間設定的結合,這個看你們的需求

『貳』 在PHP中如何使用消息列隊

在寫入隊列的時候可以規定相應的規則如:
{'處理腳本':'test','data':{'test':'test'},'分組':『1','處理結果':'0'}
這樣就可以通過一個消息隊列來處理整個項目的所以消息任務
把data發送給相遇的腳本返回處理結果,而這個分組可以實現分組多進程並發處理來解決效率問題。
效率問題的結局還可以在守護進程上進行增加,守護進程跟進當前的任務量發起適當的處理進程,處理進程再分發給具體的業務處理腳本!

『叄』 如何讓同一個php文件自動排隊運行

需要一個資源管理的概念。
a.php開始執行的代碼頭里申請使用資源,結束時釋放資源。舉個例子:項目組里只有小王一個會美工,現在小張和小米都需要叫小王幫助做一張同級別需求的圖。這里,小張先找到小王,小王答應了,小王這個資源就先被小張佔了。小米找到小王時,小王則告訴小米,他正在處理小張的需求,讓小米等待。
如果你需要處理的同一個客戶端的請求,可以使用session或者cookie來做資源管理。
如果是要解決多客戶端,因為php沒有application的概念,所以需要使用其他的介質,如:緩存文件,資料庫,內存緩存方案(memcache、redis等)

熱點內容
java刪除數組元素 發布:2024-11-08 20:39:48 瀏覽:947
網狐6603編譯 發布:2024-11-08 20:38:20 瀏覽:472
編程老頑童 發布:2024-11-08 20:37:43 瀏覽:58
手機上能搭建ftp伺服器嗎 發布:2024-11-08 20:33:30 瀏覽:205
linux抓包工具 發布:2024-11-08 20:25:07 瀏覽:459
我的世界神奇寶貝伺服器聯機生存 發布:2024-11-08 20:17:07 瀏覽:723
溫州少兒編程 發布:2024-11-08 20:16:28 瀏覽:550
伺服器硬體有什麼 發布:2024-11-08 20:13:52 瀏覽:320
windows存儲分層 發布:2024-11-08 20:04:34 瀏覽:754
淘寶客服電腦伺服器 發布:2024-11-08 19:39:26 瀏覽:911