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.mzph.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数据中的相片号与影像数据相片号不对应,出现不对应情况应手动调…

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…

查缺补漏系统学习 EF Core 6 - 实体配置

推荐关注「码侠江湖」加星标,时刻不忘江湖事这是 EF Core 系列的第二篇文章,上一篇文章讲解了 EF Core 的一些基础概念,这一篇文章主要围绕实体属性的配置。点击上方或后方蓝字,阅读 EF Core 系列合集。实体配置配置实体的目的&am…

mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联

延迟关联:通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据。为什innodb的索引叶子节点存的是主键,而不是像myisam一样存数据的物理地址指针?如果存的是物理地址指针不就不需要二次查找了吗,根据myisam和inn…

Android之在笔记本电脑adb devices识别不了oppo A9手机(设备管理器ADB Interface里面有个黄色感叹号)

1 问题 记本电脑adb devices识别不了oppo A9手机(设备管理器ADB Interface里面有个黄色感叹号) 图片如下 2 分析 很明显这里是驱动问题,ADB Interface有感叹号提示,所以这里需要解决驱动问题 3 解决办法 1)可以尝试…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大

学习目标 了解对相似逻辑的简化编写——循环 推荐 1.《备受好评的看得懂的C语言入门教程》 目录 第一篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(一)既然你选择了这系列教程那么我就要让你听得懂 第二篇:《假…

Tiny模板语言(VelocityPlus)初步入门

2019独角兽企业重金招聘Python工程师标准>>> 1 关于用户手册 本文主要介绍如何在模板中使用Tiny模板语言,通过查阅本手册,可以对Tiny模板语言 TTL(Tiny Template Language)的用法有一个较全面的认识,并学会如何有效地使用Tiny模板…

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

前言有网友在交流群中询问,文件 MD5 是全部读取到内存后计算出来的,还是拿到流就可以计算出来了:原理上来说,MD5 需要对全部内容做运算,所以应该是获取所有内容后再计算的。但是,如果全部读取到内存后再计算…

探索发现:平台云——云的新风向

本文讲的是探索发现:平台云——云的新风向,云主机,自2011年火热崛起之后,成为IDC行业替代VPS的完美系列,它的成功在于其相对于VPS的压倒性优势;而平台云凭借其的便捷的操作、实时监控和可视化服务,让站长们…

windows下配置mysql主从复制_Windows下MySQL主从复制的配置方法

MySQL主从复制允许将来自一个数据库(主数据库)的数据复制到一个或多个数据库(从数据库)。主数据库一般是实时的业务数据写入和更新操作,从数据库常用的读取为主。主从复制过程:1、主服务器上面的任何修改都会通过自己的 I/O tread(I/O 线程)保存在二进制…

【ArcGIS风暴】全国1:100万基础地理数据库获取及ArcGIS图幅完美拼接---以甘肃省为例

在日常工作中,如第三次全国国土调查、不动产登记等,我们总需要对图斑、线状等数据进行数据分幅、图幅拼接等操作。另外,日常学习工作中,无论是制图还是进行分析,都不可避免的需要使用一些基础地理数据,像行政边界、水系、道路、居民地等等,那么,这些基础地理数据有没有…

体验 .NET MAUI RC3 ,马上就要发布RTM

前言.NET MAUI 已经传了很久了, 5月10日,微软终于跟随 VS2022 17.3 预览版 发布了MAUI的候选版本 ,今天我们来体验一波。环境运行环境:.Net 6开发环境:VS2022 17.3 (必须是预览3)使用在安装了V…

WebApi的调用-3.Basic验证

webapi里的特性 /// <summary>/// Basic验证 /// </summary>/// <remarks>/// /// </remarks>public class BasicAuthorizeAttibute : AuthorizeAttribute{public override void OnAuthorization(HttpActionContext actionContext){var authori…

ats 字符集问题

2019独角兽企业重金招聘Python工程师标准>>> 架构很简单&#xff0c;nginx->ats->nginx 后端nginx有做内容替换&#xff0c;字符编码为gb2312&#xff0c;因为ats为utf8编码导致前端内容展示时进行了错误的替换&#xff0c;导致内容错乱。 如 治疗鼻窦炎---&g…