日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php承载,javascript,php_如何防止无限循环的php CPU承载过重?,javascript,php - phpStudy...

發布時間:2023/12/18 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。