gearman mysql編譯_gearman初探(一、編譯和安裝)

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

我們先來編譯和安裝gearman

gearman官網上的文檔很詳細: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官網)495f88da4ea41ba9ac1e7fba9561e678.png

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

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

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

然后確認是否安裝 gperf、libevent開發包、libuuid開發包和mysql開發包。

如果沒有安裝,分別進行yum安裝

yum install gperf

yum install libevent-devel

yum install libuuid-devel

yum install mysql-devel

然后./configure,成功后make && make install

在編譯過程中,筆者還遇到一個問題,就是提示找不到mysql.h頭文件,這是缺失mysql開發包導致的,執行whereis mysql 果然沒有看到 include路徑,解決方法就是 yum install mysql-devel,成功后再次執行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文件夾的權限導致的,gearmand(c)服務程序沒有寫這個文件夾的權限,將/usr/local的權限改為766 或者建立/usr/local/var/log/文件夾即可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287732.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287732.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287732.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(四)了解魔法百寶箱列表、字典及基本數據類型

學習目標 了解魔法世界中可更改容器——變量了解魔法世界的基本數值類型——字符串、整數了解魔法百寶箱——字典、列表了解列表如何添加值了解字典如何添加值了解字典與列表定義的不同符號 目錄 第一篇:《假如編程是魔法之零基礎看得懂的Python入門教程 》——&…

TCP協議之如何保證傳輸的可靠性

一、問題 TCP協議之如何保證傳輸的可靠性?我們先看下TCP的頭部圖片和TCP頭部的字段 /*TCP頭定義,共20個字節*/ typedef struct _TCP_HEADER {short m_sSourPort;       // 源端口號16bitshort m_sDestPort;       // 目的端口號16bitunsigned int …

【工具篇】在Mac上開發.Net Core需要的工具

微信公眾號:趣編程ACE關注可了解更多的.NET日常開發技巧,如需幫助,請后臺留言;[如果覺得本公眾號對您有幫助,歡迎關注]在Mac上開發.Net Core需要的工具如果您是一個.NET 開發者,想從Windows切換到Mac上開發.NET或者您已…

【Pix4d精品教程】Pix4Dmapper完整航測內業操作流程手把手圖文教程

1. 作業流程圖 2. 原始資料準備 原始資料包括影像數據、POS數據以及控制點數據。 確認原始數據的完整性,檢查獲取的影像中有沒有質量不合格的相片。同時查看POS數據文件,主要檢查航帶變化處的相片號,防止POS數據中的相片號與影像數據相片號不對應,出現不對應情況應手動調…

關于構造函數和this調用的思考

文中一系列思考和內容引發自以下問題:我需要在一個類的構造函數中調用另一個對象的構造函數,并使用this初始化其中的一個引用成員。 主要遇到的問題: 1. 構造函數的初始化列表中能訪問this嗎? 很明顯c創建一個對象分為兩部分&…

mysql semi join_MySQL 5.6 Semi join優化之materialization strategy

8月 24, 2014 |Nix.Huang考慮如下查詢:select * from Countrywhere Country.code IN (select City.Countryfrom Citywhere City.Population > 7*1000*1000)and Country.continentEurope這個子查詢是非相關子查詢,我們能和外層循環獨立的執行它&#x…

【ArcGIS風暴】何為動態投影?這次全面為您揭開ArcGIS中動態投影的神秘面紗!

本課程配套藍光視頻: 【ArcGIS風暴】GIS動態投影問題 GISer們都見過以下警告,該警告的原因是當前加載的數據的坐標系和當前數據框坐標系不一致導致的,核心問題是地理坐標系不一致。如當前數據的坐標系是GCS_Xian_1980,而數據框的坐標系有可能是WGS_1984等,總之跟要加載的數…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(五)我的魔法竟然有了一絲邏輯

學習目標 了解魔法世界中的結構表現——縮進了解魔法世界的邏輯判斷——if了解魔法世界的多次邏輯判斷——ifelse嵌套了解魔法世界中的邏輯運算——且 and 與或 or 推薦 1.《備受好評的看得懂的C語言入門教程》 目錄 第一篇:《假如編程是魔法之零基礎看得懂的P…

類和類之間的關系

一、類和類之間的關系 UML類圖中,常見以下幾種關系: 1、泛化(Generalization) 是一種繼承關系,比如動物類和老虎類,老虎繼承動物,子類如何特化父類的所有特征和行為 箭頭指向:帶三角箭頭的實線&#xff0…

Java SpringMvc+hibernate架構中,調用Oracle中的sp,傳遞數組參數

一、問題 我們調用數據,大都是可以直接獲取表中的數據,或者用復雜點的sql語句組成的。但是,有時候,當這樣達不到我們要的全部數據的時候,這時,我們就用到了存儲過程【sp】,如果sp需要參數是數組…

js模擬blur

<div></div> 某個事件給div加個屬性 $(div).attr(wait,true); $(div).click(function() { if(false!$(this).attr(wait)) return false; })轉載于:https://www.cnblogs.com/cndxk/p/4788414.html

中國第一朵企業云

本文講的是中國第一朵企業云&#xff0c;【IT168 資訊】算起來&#xff0c;中國中化集團公司的ERP完全運行在“云”上已經一個多月了&#xff0c;每每提到這個“創舉”&#xff0c;信息技術部總經理彭勁松顯得有些興奮&#xff0c;卻仍然很謹慎。作為中國第一家企業云的實踐者&…

查缺補漏系統學習 EF Core 6 - 實體配置

推薦關注「碼俠江湖」加星標&#xff0c;時刻不忘江湖事這是 EF Core 系列的第二篇文章&#xff0c;上一篇文章講解了 EF Core 的一些基礎概念&#xff0c;這一篇文章主要圍繞實體屬性的配置。點擊上方或后方藍字&#xff0c;閱讀 EF Core 系列合集。實體配置配置實體的目的&am…

【ArcGIS風暴】捕捉VS經典捕捉,誰更有用武之地?

幾乎所有的GIS軟件都具有捕捉功能!今天我們一起來聊一聊ArcGIS軟件中的捕捉功能吧。 ArcGIS軟件中有兩個重要的捕捉工具:捕捉和經典捕捉。 目錄 一、捕捉(Snapping) 1、捕捉類型 2、捕捉選項

mysql innodb 索引 延遲更新_Mysql覆蓋索引與延遲關聯

延遲關聯&#xff1a;通過使用覆蓋索引查詢返回需要的主鍵,再根據主鍵關聯原表獲得需要的數據。為什innodb的索引葉子節點存的是主鍵&#xff0c;而不是像myisam一樣存數據的物理地址指針&#xff1f;如果存的是物理地址指針不就不需要二次查找了嗎&#xff0c;根據myisam和inn…

Android之在筆記本電腦adb devices識別不了oppo A9手機(設備管理器ADB Interface里面有個黃色感嘆號)

1 問題 記本電腦adb devices識別不了oppo A9手機&#xff08;設備管理器ADB Interface里面有個黃色感嘆號&#xff09; 圖片如下 2 分析 很明顯這里是驅動問題&#xff0c;ADB Interface有感嘆號提示&#xff0c;所以這里需要解決驅動問題 3 解決辦法 1&#xff09;可以嘗試…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(六)精簡魔法更強大

學習目標 了解對相似邏輯的簡化編寫——循環 推薦 1.《備受好評的看得懂的C語言入門教程》 目錄 第一篇&#xff1a;《假如編程是魔法之零基礎看得懂的Python入門教程 》——&#xff08;一&#xff09;既然你選擇了這系列教程那么我就要讓你聽得懂 第二篇&#xff1a;《假…

Tiny模板語言(VelocityPlus)初步入門

2019獨角獸企業重金招聘Python工程師標準>>> 1 關于用戶手冊 本文主要介紹如何在模板中使用Tiny模板語言&#xff0c;通過查閱本手冊&#xff0c;可以對Tiny模板語言 TTL(Tiny Template Language)的用法有一個較全面的認識&#xff0c;并學會如何有效地使用Tiny模板…

第十二周學習進度表

第十二周所花時間&#xff08;包括上課&#xff09;上課&#xff1a;4小時&#xff08;2小時的實驗&#xff09;&#xff0c;周一&#xff1a;2小時&#xff0c;周三&#xff1a;3小時&#xff0c;周四&#xff1a;2小時&#xff0c;周五&#xff1a;2小時&#xff0c;周六、日…

『技術群里聊些啥』.NET 如何計算文件 MD5 哈希

前言有網友在交流群中詢問&#xff0c;文件 MD5 是全部讀取到內存后計算出來的&#xff0c;還是拿到流就可以計算出來了&#xff1a;原理上來說&#xff0c;MD5 需要對全部內容做運算&#xff0c;所以應該是獲取所有內容后再計算的。但是&#xff0c;如果全部讀取到內存后再計算…