真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php每秒采集一次數(shù)據(jù) php自動采集如何實(shí)現(xiàn)

用php+ajax+mysql,每一秒鐘查找數(shù)據(jù)庫一次,每次調(diào)用后需要關(guān)閉數(shù)據(jù)庫鏈接或者mysql_query()產(chǎn)生的資源嗎

可以不手動關(guān)閉,php會自已處理,即使手動關(guān)閉也不會立即就關(guān)閉的

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、黃島網(wǎng)站維護(hù)、網(wǎng)站推廣。

php采集大數(shù)據(jù)的方案

1、建議你讀寫數(shù)據(jù)和下載圖片分開,各用不同的進(jìn)程完成。

比如說,取數(shù)據(jù)用get-data.php,下載圖片用get-image.php。

2、多進(jìn)程的話,php可以簡單的用pcntl_fork()。這樣可以并發(fā)多個子進(jìn)程。

但是我不建議你用fork,我建議你安裝一個gearman worker。這樣你要并發(fā)幾個,就啟幾個worker,寫代碼簡單,根本不用在代碼里考慮thread啊,process等等。

3、綜上,解決方案這樣:

(1)安裝gearman worker。

(2)寫一個get-data.php,在crontab里設(shè)置它每5分鐘執(zhí)行一次,只負(fù)責(zé)讀數(shù)據(jù),然后把讀回來的數(shù)據(jù)一條一條的扔到 gearman worker的隊(duì)列里;

然后再寫一個處理數(shù)據(jù)的腳本作為worker,例如叫process-data.php,這個腳本常駐內(nèi)存。它作為worker從geraman 隊(duì)列里讀出一條一條的數(shù)據(jù),然后跟你的數(shù)據(jù)庫老數(shù)據(jù)比較,進(jìn)行你的業(yè)務(wù)邏輯。如果你要10個并發(fā),那就啟動10個process-data.php好了。處理完后,如果圖片地址有變動需要下載圖片,就把圖片地址扔到 gearman worker的另一個隊(duì)列里。

(3)再寫一個download-data.php,作為下載圖片的worker,同樣,你啟動10個20個并發(fā)隨便你。這個進(jìn)程也常駐內(nèi)存運(yùn)行,從gearman worker的圖片數(shù)據(jù)隊(duì)列里取數(shù)據(jù)出來,下載圖片

4、常駐進(jìn)程的話,就是在代碼里寫個while(true)死循環(huán),讓它一直運(yùn)行好了。如果怕內(nèi)存泄露啥的,你可以每循環(huán)10萬次退出一下。然后在crontab里設(shè)置,每分鐘檢查一下進(jìn)程有沒有啟動,比如說這樣啟動3個process-data worker進(jìn)程:

* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php /dev/null 21'

* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php /dev/null 21'

* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php /dev/null 21'

不知道你明白了沒有

PHP如何每隔一段時間取一段數(shù)據(jù)?

你要用什麼來做?可以開一個shell來執(zhí)行一個永遠(yuǎn)循環(huán)的php腳本,也可以用js觸發(fā),也可以用crontab來執(zhí)行


網(wǎng)頁標(biāo)題:php每秒采集一次數(shù)據(jù) php自動采集如何實(shí)現(xiàn)
文章轉(zhuǎn)載:http://weahome.cn/article/ddjpeic.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部