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

关于构造函数和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;如果全部读取到内存后再计算…