1、建議你讀寫數(shù)據(jù)和下載圖片分開,各用不同的進程完成。
為冷水江等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及冷水江網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都做網(wǎng)站、成都網(wǎng)站建設、成都外貿網(wǎng)站建設、冷水江網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
比如說,取數(shù)據(jù)用get-data.php,下載圖片用get-image.php。
2、多進程的話,php可以簡單的用pcntl_fork()。這樣可以并發(fā)多個子進程。
但是我不建議你用fork,我建議你安裝一個gearman worker。這樣你要并發(fā)幾個,就啟幾個worker,寫代碼簡單,根本不用在代碼里考慮thread啊,process等等。
3、綜上,解決方案這樣:
(1)安裝gearman worker。
(2)寫一個get-data.php,在crontab里設置它每5分鐘執(zhí)行一次,只負責讀數(shù)據(jù),然后把讀回來的數(shù)據(jù)一條一條的扔到 gearman worker的隊列里;
然后再寫一個處理數(shù)據(jù)的腳本作為worker,例如叫process-data.php,這個腳本常駐內存。它作為worker從geraman 隊列里讀出一條一條的數(shù)據(jù),然后跟你的數(shù)據(jù)庫老數(shù)據(jù)比較,進行你的業(yè)務邏輯。如果你要10個并發(fā),那就啟動10個process-data.php好了。處理完后,如果圖片地址有變動需要下載圖片,就把圖片地址扔到 gearman worker的另一個隊列里。
(3)再寫一個download-data.php,作為下載圖片的worker,同樣,你啟動10個20個并發(fā)隨便你。這個進程也常駐內存運行,從gearman worker的圖片數(shù)據(jù)隊列里取數(shù)據(jù)出來,下載圖片
4、常駐進程的話,就是在代碼里寫個while(true)死循環(huán),讓它一直運行好了。如果怕內存泄露啥的,你可以每循環(huán)10萬次退出一下。然后在crontab里設置,每分鐘檢查一下進程有沒有啟動,比如說這樣啟動3個process-data worker進程:
* * * * * 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'
不知道你明白了沒有
1.web前端和大數(shù)據(jù)是兩個不同的領域。其中涉及了不同的知識體系以及工具。
2.PHP和python是編程語言,屬于工具,不屬于方向。你可以用python搞大數(shù)據(jù),也可以用PHP來搞大數(shù)據(jù),只是python比PHP更合適,效率更高。你可以用python開發(fā)網(wǎng)站,也可以用PHP,只是用PHP開發(fā)web更高效,成本更低廉。
所以,說方向的話,web前端和大數(shù)據(jù) 你可以來選一個。如果說選定方向以后用什么工具來做,那么PHP和python哪個效率高,更適合,就用哪個
主要有二個方向:
一是大數(shù)據(jù)維護、研發(fā)、架構工程師方向;所涉及的職業(yè)崗位為:大數(shù)據(jù)工程師、大數(shù)據(jù)維護工程師、大數(shù)據(jù)研發(fā)工程師、大數(shù)據(jù)架構師等;
二是大數(shù)據(jù)挖掘、分析方向;所涉及的職業(yè)崗位為:大數(shù)據(jù)分析師、大數(shù)據(jù)高級工程師、大數(shù)據(jù)分析師專家、大數(shù)據(jù)挖掘師、大數(shù)據(jù)算法師等
不要想的太寬,建議從PHP先學起,試想哪個公司會讓新人一上去就去設計數(shù)據(jù)庫呢。數(shù)據(jù)庫在工作中自然能慢慢鍛煉,并且由于硬件和實踐的原因,在工作中學到的數(shù)據(jù)庫方面的知識絕對是在學校拼命看書所不能比的
該專業(yè)畢業(yè)的學生可以去對大數(shù)據(jù)處理有需求的各行業(yè)部門,如銀行、商業(yè)機構、電信、電商公司等入職,也可以從事數(shù)據(jù)采集、管理、分析與挖掘方面的工作。
1、大數(shù)據(jù)工程師:從事數(shù)據(jù)采集與管理工作,需要較強的IT專業(yè)能力,這個崗位也有很多別名,如hadoop工程師、javag工程師(大數(shù)據(jù))、ETL工程師等,關鍵看其崗位職責和技能需求,別看名字。應屆生月薪平均在10k以上。
2、大數(shù)據(jù)分析師:從事數(shù)據(jù)資源開發(fā)與利用,主要工作是數(shù)據(jù)分析、和數(shù)據(jù)挖掘,能出圖表、出報告。需要數(shù)量使用一些分析工具,比如spss、SAS,如果能使用編程的方式靈活進行數(shù)據(jù)分析,就更好了,比如python或R.這個崗位也有別名,比如數(shù)據(jù)分析師,商務智能分析師。應屆生月薪大約在8k以上。
3、算法工程師:從事機器學習,構建人工智能模型,也稱機器學習工程師,在商業(yè)領域,也有稱為商務智能工程師的。該崗位需要很強的數(shù)學分析能力和編程能力,是三個崗位中的金領職位,也是月薪最高的職位,應屆生月薪目前在15K以上。