當前位置:首頁 » 編程語言 » 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返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:677
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:249
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705