php承载,javascript,php_如何防止无限循环的php CPU承载过重?,javascript,php - phpStudy...
如何防止無限循環的php CPU承載過重?
我寫了一只程序,專門在抓某個api 的所提供的數據。然而,為了防止每次insert新數據料后,就必被把舊的數據狀態改掉。(不能一直用insert,因為有可能這次這個id進來的數據有四個,下一次有三筆,再下一次可能有五筆),所以我用了幾個數組來紀錄,比對,一但數據有不同的時候能寫才數據庫。
例如:
Do
{
Foreach(事件id)
{
Foreach(第一種數據) //然而這一種數據有一至三種不同
{
Foreach(第一種數據裡的小數據)
{
//以下是紀錄各數劇
If(!$m1[‘id’][‘第一種數劇的類別’][‘第一種數據裡小數劇key值’])
{
$m1[‘id’][‘第一種數劇的類別’][‘第一種數據裡小數劇key值’]=implode($tmp1); //$tmp都是紀錄數據的陣列
sqlInsert($tmp);
}
Else
{
If($m1[‘id’][‘第一種數劇的類別’][‘第一種數據裡小數劇key值’]) !=implode($tmp))
{
$m1[‘id’][‘第一種數劇的類別’][‘第一種數據裡小數劇key值’] = implode($tmp);
sqlInsert($tmp);
}
}
}
}
Foreach(第二種數據) //然而這一種數據有一至三種不同
{
Foreach(第二種數據裡的小數據)
{
//以下是紀錄各數劇
If(!$m2[‘id’][‘第二種數劇的類別’][‘第二種數據裡小數劇key值’])
{
$m2[‘id’][‘第二種數劇的類別’][‘第二種數據裡小數劇key值’]=implode($tmp1); //$tmp都是紀錄數據的陣列
sqlInsert($tmp1);
}
Else
{
If($m2[‘id’][‘第二種數劇的類別’][‘第二種數據裡小數劇key值’]) !=implode($tmp1))
{
$m2[‘id’][‘第二種數劇的類別’][‘第二種數據裡小數劇key值’] = implode($tmp1);
sqlInsert($tmp1);
}
}
}
}
Foreach(第三種數據) //這組數劇裡面不再有小數劇
{
//以下是紀錄各數劇
If(!$m3[‘id’][‘第三種數劇的類別’][‘empty’])
{
$m3[‘id’][‘第三種數劇的類別’][‘empty’]=implode($tmp2); //$tmp都是紀錄數據的陣列
sqlInsert($tmp2);
}
Else
{
If($m3[‘id’][‘第三種數劇的類別’][‘empty’]) !=implode($tmp2))
{
$m3[‘id’][‘第三種數劇的類別’][‘empty’] = implode($tmp2);
sqlInsert($tmp2);
}
}
}
//以下是紀錄事件本體id的狀態等等的資料
If(!$m4[‘id’][‘event’][‘empty’])
{
$m4[‘id’][‘event’][‘empty’]=implode($tmp5); //$tmp都是紀錄數據的陣列
sqlInsert($tmp2);
}
Else
{
If($m4[‘id’][‘event’][‘empty’]) !=implode($tmp5))
{
$m4[‘id’][‘event’][‘empty’] = implode($tmp5);
sqlInsert($tmp5);
}
}
}
//以下程式是執行 如果事件本體的id 不再提供資料時,unset($m1['id']~$m4['id'])
sleep(3);
}while(條件);
程序大約是這樣的狀況,但是約執行一天,主機的cpu 就會承載至100% , 且這樣的程序,我約有四至五個線程要跑.....
每支程序約用四個arrays 三維數組來作「紀錄」的動作,id可能會有0-15個
第一、二大類的數據約有1-10組的小數據。
這樣的思考方式是正確的嗎?或者有什么更有效率的執行方式?
p.s. sqlinsert 里的func 主要是 「更改上一筆數據的狀態,再 insert一筆新的」。數據更新的時間約2秒 至 10分鐘 不等. 經查并不是sql 的問題,而是php本身的承載就過重了
相關閱讀:
使用spring的@Value注解出錯
$.get如何返回獲取的數據給外部變量
Gson庫的引用
網頁聊天,如何確定用戶退出?
關于webpack代碼分割功能
Chrome調試臺映射網絡資源到本地文件后,修改本地文件無效果?
MongoDB 傾向于將數據都放在一個 Collection 下嗎?
Flask Web Development 第四章 Web表單 為什么要用form.name.data = ''
Python 能否終止對象的實例化過程
delphi 局域網內傳輸圖片
有什么在 Java 平臺上做而不能在 .net 平臺上做,而相反呢?
如何實現下拉列表一級和二級分類容器的滾動?
js中正則表達式match方法的問題
PHP + Mysql + Redis 隊列郵件
PHP:隨機讀取文件
小狼毫輸入法文件weasel.yaml在哪里?
Java如何通過注解映射URL相應的action
服務器是否需要做成有狀態的
如何對網站進行端到端測試
addEventListener 應該添加到 window 還是 document?
總結
以上是生活随笔為你收集整理的php承载,javascript,php_如何防止无限循环的php CPU承载过重?,javascript,php - phpStudy...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php专周总结,【嘉兴东臣php】HTM
- 下一篇: php excel 导入配置,Think