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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gearman初探(一、编译和安装)

發(fā)布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gearman初探(一、编译和安装) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

gearman是一個任務(wù)分發(fā)系統(tǒng),將計算比較耗時的任務(wù)分發(fā)給不同的機器專門進行計算,而任務(wù)發(fā)起的初始程序不必等待這些任務(wù)完成就可以返回而繼 續(xù)執(zhí)行。筆者最開始做PHP郵件發(fā)送的時候,因為郵件發(fā)送耗時比較長,這時PHP腳本就會被阻塞,必須等待郵件發(fā)送完畢后,腳本才能運行結(jié)束。不但用戶體 驗不好,也會帶來負載的問題,那么可不可以把發(fā)送郵件的任務(wù)分派給其他機器,程序把任務(wù)分派之后就立即返回呢。答案就是:gearman

我們先來編譯和安裝gearman
gearman官網(wǎng)上的文檔很詳細:http://gearman.org/getting-started/

其中涉及到各平臺的安裝方法,包括windows : http://www.phpvs.net/2010/11/30/installing-gearman-and-gearmand-on-windows-with-cygwin/ . 這里采取源代碼安裝的方式(yum安裝有時候讓人沮喪,因為repository里可能沒有這個軟件)

因為gearmen的工作原理,它分為Job Server和 Client & Worker APIs兩部分,如下圖所示(圖片取自gearman官網(wǎng))

整個程序執(zhí)行的流程自上而下,上面的和下面的兩個藍色塊都是你的程序代碼——實現(xiàn)你的業(yè)務(wù)邏輯,上面的藍色塊是你的任務(wù)發(fā)起代碼,比如你的郵件數(shù)據(jù) 的準(zhǔn)備和發(fā)送請求的準(zhǔn)備,下面的藍色塊是任務(wù)執(zhí)行的代碼,比如郵件發(fā)送的執(zhí)行。三個黃色塊的總和就是gearman,上面的黃色塊是Client API,提供和各種語言溝通的統(tǒng)一接口,下面的黃色塊是Worker API,也是提供統(tǒng)一的接口,只不過一個靠近請求發(fā)送,另一個靠近請求處理。兩者統(tǒng)稱為Client & Worker APIs。中間的黃色塊就是gearman的服務(wù)部分了,即Gearman Job Server(gearmand)。我們首先安裝Gearman Job Server.

Gearman Job Server 有三個實現(xiàn)版本(http://gearman.org/download/): gearmand(c)、java-gearman-service(java) 和 Gearman::Server(perl)。三種語言,三種實現(xiàn)版本,這里選擇gearmand(c),你也可以根據(jù)你熟悉的語言進行選擇。

在https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz 上將源碼下載后

#cd ~/下載 #tar -xvzf gearman-1.1.12.tar.gz #cd ./gearman-1.1.12

在./configure 之前,請確保你的系統(tǒng)里 gcc 和 g++ 能正常工作,如果沒有安裝,請yum install。如果yum無法安裝g++,可以使用Gnome的系統(tǒng)工具—管理—添加/刪除軟件功能,添加C++ support for gcc。有一點要注意的是,如果沒有g(shù)++,那么即使你安裝了boost和boost-devel庫,也會提示你找不到boost-lib.

然后確認是否安裝 gperf、libevent開發(fā)包、libuuid開發(fā)包和mysql開發(fā)包。
如果沒有安裝,分別進行yum安裝

yum install gperf yum install libevent-devel yum install libuuid-devel yum install mysql-devel

然后./configure,成功后make && make install
在編譯過程中,筆者還遇到一個問題,就是提示找不到mysql.h頭文件,這是缺失mysql開發(fā)包導(dǎo)致的,執(zhí)行whereis mysql 果然沒有看到 include路徑,解決方法就是 yum install mysql-devel,成功后再次執(zhí)行whereis mysql 看到了include路徑,然后編譯gearmand(c)成功,安裝成功。
安裝成功后,啟動gearmand

#gearmand -d

但在筆者的機器上提示了一個錯誤:

gearmand: Could not open log file “/usr/local/var/log/gearmand.log”, from “/root/下載/geard-1.1.12″, switching to stderr. (No such file or directory)?

這是/usr/local文件夾的權(quán)限導(dǎo)致的,gearmand(c)服務(wù)程序沒有寫這個文件夾的權(quán)限,將/usr/local的權(quán)限改為766 或者建立/usr/local/var/log/文件夾即可。

轉(zhuǎn)載于:https://my.oschina.net/yongbaolinux/blog/342281

總結(jié)

以上是生活随笔為你收集整理的gearman初探(一、编译和安装)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。