gearman初探(一、编译和安装)
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初探(一、编译和安装)相关推荐
- gearman mysql编译_gearman初探(一、编译和安装)
gearman是一个任务分发系统,将计算比较耗时的任务分发给不同的机器专门进行计算,而任务发起的初始程序不必等待这些任务完成就可以返回而继 续执行.笔者最开始做PHP邮件发送的时候,因为邮件发送耗时比 ...
- ubuntu下使用Tesseract-ocr(编译、安装、使用、训练新的语言库)
本文前半部分是来自http://www.qisanfen.com/?p=185的一篇文章,主要讲了安装.训练的大致流程,注意如果需要训练语言库需要把所需要的库安装完整 后半部分大致是官方wiki的翻译 ...
- 【Live555】liveMedia下载、配置、编译、安装、基本概念
[Live555]live555源码详解系列笔记 一.下载.编译.安装 1.下载 官网地址:http://www.live555.com/ 下载地址:http://www.live555.com/li ...
- Linux下boost库的编译、安装详解
1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...
- golang go get命令 一键获取代码、编译并安装
go get 命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装.整个过程就像安装一个 App 一样简单. 这个命令可以动态获取远程代码包,目前支持的有 BitBucke ...
- linux内核单独安装,Linux内核编译与安装
平台:虚拟机Ubuntu10.04 内核版本:3.0.80 ---------------------------------------------------------------------- ...
- CentOS6.9下手动编译并安装Python3.7.0
CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍Python-3.7.0版本的手动编译并安装的步骤 1.下载Python-3.7.0 ...
- Apache 2,4版本 编译与安装 RedHat enterprises 6.2
只针对Apache 2,4版本 ,之前版本不存在这个问题 到http://httpd.apache.org/下载以源码方式安装,我下载的版本是Apache httpd 2.4.3 解压:[root@l ...
- linux怎么编译并安装busybox,linux下安装busybox
1.获取busybox源码并解压,这里使用天嵌提供的"busybox-1.16.0.tar.bz2" #tar xvf busybox-1.16..tar.bz2 -C / 解压的 ...
最新文章
- 大白话聊聊 Kafka 的架构原理和网络设计,它的性能高在什么地方?
- 寒冰linux视频教程笔记5 过滤器、输入输出及管道
- VS2010解决方案转换到VS2008
- 如何用纯 CSS 创作一个单元素抛盒子的 loader
- Yabbly:让经验缔结因果
- boost::hana::default_用法的测试程序
- php写新闻浏览历史,PHP实现浏览历史记录
- Shiro————核心设计思想
- android 7.1 上wifi 热点 上的接口变化
- Linux学习笔记---更新软件源
- CSS经典书写技巧之(二)
- html中加入数据库,HTML中如何连接数据库?
- cad命令栏还原默认_CAD命令行不见了怎么重新恢复?
- 如何更改eclipse项目文件中文件包的显示格式
- opencv实时识别指定物体
- Win系统 - 教你解决打印机无法安装驱动程序的问题
- Power oj 2781: 上决╇ф的黑科技 (任意模数NTT|拆系数FFT)
- pgsql日期及时间
- BUAA(2021春)实验:树的构造与遍历——根据提示循序渐进(可惜提示有问题Ծ‸Ծ)
- 希腊罗马神话传说和《圣经》中的英语成语典故