亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1928 | 回復: 6
打印 上一主題 下一主題

php全局變量問題,求救。。。 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-08-22 01:03 |只看該作者 |倒序瀏覽

我準備寫一個簡單的查詢程序,
需求如下,每隔20秒到另外一個監(jiān)控程序 取數和據,然后把在這些數據緩存起來,供應大規(guī)模地查詢。。。

監(jiān)控取回來的數據很小,只有幾行。

我的問題是如何在內存中存儲這這些數據,目前我用global 變量每次訪問后都被清零,無法做到緩存作用。。

如果每次有人訪問 我都從數據庫或者監(jiān)控取的話太慢了。。。

論壇徽章:
0
2 [報告]
發(fā)表于 2012-08-22 07:54 |只看該作者
本帖最后由 fiendcly 于 2012-08-22 08:11 編輯

這種情況你要建立一個 Process , 讓它一直 Work.

不過這種長時間 Work 的 Process 不建議你用 PHP.

因為 PHP 是 Script 語言 , 加上它一直以來都是 透過~FAST-CGI 或 PHP-FPM 與 HTTP SERVER 溝通.

它們的溝通方式也一直都是用 短連結 ( SOCKET 連結溝通完就斷開 ) 的方式溝通.

我記得九年前在我還不是很懂 PHP 特性時我常不小心犯這種錯.

把 PHP 當一個 DEAMON 而服務常無故斷掉. ( PHP 的記憶體控制很差 ) , 因為專案己經寫了一陣子無耐只好 寫支 watch dog 每分鐘去檢查服務是不是還在.

所以我很來一律都用 crontab -e  每分鐘做一次.

但是這次你的需求是每20秒做一次.

我建議你用 C/C++ 做一個 長時間的 PROCESS 來解決這個問題.

長時間背景執(zhí)行這個 PROCESS 的語法

nohup php -q test.php <<< 類似這樣 但是不建議你這麼做 改成用C

nohup ./test << 這樣會好很多

################################

解法很多種 :

1. 將 你要的邏輯 用 PHP 或 C 寫一個無窮迴圈 , 然後 做成 Unix Socket 或 TCP socket 的 長時間 Process 供 SCRIPT 使用 SOCKET 去訪問.

以下是 C 的範例 :
################

void main ()  
          while(true){
                           
                      .........................
                      監(jiān)控邏輯() ;

                      回覆監(jiān)控結果();

                      soekct() ;
  
                       bind()
               
                       listen()
                                
                       accept();

                       read()
                              
                                請取 CLIENT 端的邏輯();

                       write()

                               回覆監(jiān)控結果();

                      sleep(20) ;

                     

          }

################

2. 建議一個長時間的 Process , 然後 每 20秒 丟進 Memcache ( 如果你不熟 Socket Server 的寫法 ) , 然後再用 PHP 去讀它.


3. 比較笨的方法 :

把 PHP 當一個 Process , 如果服務常無故斷掉. ( PHP 的記憶體控制很差 ) ,寫支 watch dog 每分鐘去檢查服務是不是還在.




PS :

如果你不熟 C/C++ , 對編譯也不是很有經驗.

可以用 Pyrhon 寫這個服務.

我有陣子都用 Python 取代 PHP 做 SCRIPT.

穩(wěn)定性和效能 比 PHP 好很多.

因為它在第一次執(zhí)行完後會 Build , phc 檔出來.

比起 PHP 在長時間工作的 Process 相比 , 相對的穩(wěn)定非常多。




論壇徽章:
0
3 [報告]
發(fā)表于 2012-08-22 09:21 |只看該作者
使用apc或者文件做緩存吧。

論壇徽章:
0
4 [報告]
發(fā)表于 2012-08-22 09:29 |只看該作者
使用apc或者memcache

論壇徽章:
0
5 [報告]
發(fā)表于 2012-08-22 10:16 |只看該作者

論壇徽章:
0
6 [報告]
發(fā)表于 2012-08-22 11:00 |只看該作者
本帖最后由 hmilymb 于 2012-08-22 11:00 編輯

準備生成靜態(tài)頁面,或者putenv到環(huán)境變量中。。。
不知道getenv()的速度如何。。

論壇徽章:
0
7 [報告]
發(fā)表于 2012-08-22 11:01 |只看該作者
寫的大家的回答了。。。。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP