2019独角兽企业重金招聘Python工程师标准>>>

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官网)

整个程序执行的流程自上而下,上面的和下面的两个蓝色块都是你的程序代码——实现你的业务逻辑,上面的蓝色块是你的任务发起代码,比如你的邮件数据 的准备和发送请求的准备,下面的蓝色块是任务执行的代码,比如邮件发送的执行。三个黄色块的总和就是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/文件夹即可。

转载于:https://my.oschina.net/yongbaolinux/blog/342281

gearman初探(一、编译和安装)相关推荐

  1. gearman mysql编译_gearman初探(一、编译和安装)

    gearman是一个任务分发系统,将计算比较耗时的任务分发给不同的机器专门进行计算,而任务发起的初始程序不必等待这些任务完成就可以返回而继 续执行.笔者最开始做PHP邮件发送的时候,因为邮件发送耗时比 ...

  2. ubuntu下使用Tesseract-ocr(编译、安装、使用、训练新的语言库)

    本文前半部分是来自http://www.qisanfen.com/?p=185的一篇文章,主要讲了安装.训练的大致流程,注意如果需要训练语言库需要把所需要的库安装完整 后半部分大致是官方wiki的翻译 ...

  3. 【Live555】liveMedia下载、配置、编译、安装、基本概念

    [Live555]live555源码详解系列笔记 一.下载.编译.安装 1.下载 官网地址:http://www.live555.com/ 下载地址:http://www.live555.com/li ...

  4. Linux下boost库的编译、安装详解

    1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...

  5. golang go get命令 一键获取代码、编译并安装

    go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装.整个过程就像安装一个 App 一样简单. 这个命令可以动态获取远程代码包,目前支持的有 BitBucke ...

  6. linux内核单独安装,Linux内核编译与安装

    平台:虚拟机Ubuntu10.04 内核版本:3.0.80 ---------------------------------------------------------------------- ...

  7. CentOS6.9下手动编译并安装Python3.7.0

    CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍Python-3.7.0版本的手动编译并安装的步骤 1.下载Python-3.7.0 ...

  8. Apache 2,4版本 编译与安装 RedHat enterprises 6.2

    只针对Apache 2,4版本 ,之前版本不存在这个问题 到http://httpd.apache.org/下载以源码方式安装,我下载的版本是Apache httpd 2.4.3 解压:[root@l ...

  9. linux怎么编译并安装busybox,linux下安装busybox

    1.获取busybox源码并解压,这里使用天嵌提供的"busybox-1.16.0.tar.bz2" #tar xvf busybox-1.16..tar.bz2 -C / 解压的 ...

最新文章

  1. 大白话聊聊 Kafka 的架构原理和网络设计,它的性能高在什么地方?
  2. 寒冰linux视频教程笔记5 过滤器、输入输出及管道
  3. VS2010解决方案转换到VS2008
  4. 如何用纯 CSS 创作一个单元素抛盒子的 loader
  5. Yabbly:让经验缔结因果
  6. boost::hana::default_用法的测试程序
  7. php写新闻浏览历史,PHP实现浏览历史记录
  8. Shiro————核心设计思想
  9. android 7.1 上wifi 热点 上的接口变化
  10. Linux学习笔记---更新软件源
  11. CSS经典书写技巧之(二)
  12. html中加入数据库,HTML中如何连接数据库?
  13. cad命令栏还原默认_CAD命令行不见了怎么重新恢复?
  14. 如何更改eclipse项目文件中文件包的显示格式
  15. opencv实时识别指定物体
  16. Win系统 - 教你解决打印机无法安装驱动程序的问题
  17. Power oj 2781: 上决╇ф的黑科技 (任意模数NTT|拆系数FFT)
  18. pgsql日期及时间
  19. BUAA(2021春)实验:树的构造与遍历——根据提示循序渐进(可惜提示有问题Ծ‸Ծ)
  20. 希腊罗马神话传说和《圣经》中的英语成语典故

热门文章

  1. Computer Vision的尴尬
  2. python seaborn 热图_Python-Seaborn热图绘制的实现方法
  3. 使用 Python 5 年后,我转向了Go
  4. Intellij Idea 使用
  5. Materialized Views
  6. git tag 功能笔记
  7. 网站被黑的原因真实案例
  8. dagger android 学习(二):AndroidInjector的使用
  9. 可以无限量服用的药材
  10. Adobe Acrobat XI反色保护色