<?php
搭建描述:
. 在实际使用时应该是运行gearmand -d 的 server 一台. [要装gearmand,运行gearmand] . 处理worker的机器若干[要装gearmand 及php.so但gearmand不需要运行]. . 下达任务client若干[要装gearmand 及php.so但gearmand不需要运行]. . worker 与 client 不会直接通信,都是通过gearmand分发处理的. 上面是一个同步请求的例子,其实gearman可以异步处理,把client端里的代码 do函数 换成 doBackground函数就可以了. 第一步:安装
wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz 遇到错误 : gearman configure: error: could not find boost
yum install -y boost boost-devel
yum install -y gperf rperf-devel
yum install -y libuuid libuuid-devel tar -zxvf gearmand-1.1..tar.gz
./configure -- `configure' configures gearmand 1.1.12 to adapt to many kinds of systems. Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. 见下文描述的一些有用的变量 在括号中指定选项的默认值。 Configuration:
-h, --help 显示这个帮助并退出
--help=short 特定于这个包显示选项
--help=recursive 显示所有包含包的短期帮助
-V, --version 显示版本信息并退出
-q, --quiet, --silent 不打印“检查…的消息
--cache-file=FILE 缓存中测试结果文件(禁用)
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create 不创建输出文件
--srcdir=DIR find the sources in DIR [configure dir or `..'] Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX] By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/gearmand]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR] Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD] Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-libdrizzle Build with libdrizzle support [default=on]
--enable-dtrace Build with support for the DTRACE. [default=no]
--disable-libpq Build with libpq, ie Postgres, support [default=on]
--disable-libtokyocabinet
Build with libtokyocabinet support [default=on]
--disable-hiredis Build with hiredis support [default=on]
--enable-cyassl Enable ssl support for Gearman [default=yes]
--enable-ssl Enable ssl support for Gearman [default=no]
--disable-libmemcached Build with libmemcached support [default=on]
--enable-jobserver[=no/yes/#] default=yes
Enable up to # make jobs
yes: enable one more than CPU count --enable-debug Add debug code/turns off optimizations (yes|no)
[default=no]
--enable-assert Enable assert, this will be overridden by
--enable-debug (yes|no) [default=no] Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot=DIR Search for dependent libraries within DIR
(or the compiler's sysroot if not specified).
--with-boost[=ARG] use Boost library from a standard location
(ARG=yes), from the specified location (ARG=<path>),
or disable it (ARG=no) [ARG=yes]
--with-boost-libdir=LIB_DIR
Force given directory for boost libraries. Note that
this will override library path detection, so use
this parameter only if default library detection
fails and you know exactly where your boost
libraries are located.
--with-boost-program-options[=special-lib]
use the program options library from boost - it is
possible to specify a certain library for the linker
e.g.
--with-boost-program-options=boost_program_options-gcc-mt-1_33_1
--with-mysql=[ARG] use MySQL client library [default=yes], optionally
specify path to mysql_config
--with-curl-prefix=PREFIX
Prefix where curl is installed (optional)
--with-curl-exec-prefix=EPREFIX
Exec prefix where curl is installed (optional)
--with-drizzled=[PATH]
absolute path to drizzled executable
--with-sqlite3=[ARG] use SQLite library [default=yes], optionally
specify the prefix for sqlite3 library
--with-postgresql=[ARG] use PostgreSQL library [default=yes], optionally
specify path to pg_config
--with-memcached=[PATH]
absolute path to memcached executable
--with-sphinx-build=[PATH]
absolute path to sphinx-build executable
--with-lcov=[PATH] absolute path to lcov executable
--with-genhtml=[PATH] absolute path to genhtml executable
--with-openssl=DIR root of the OpenSSL directory
--with-sanitize Enable sanitize flag for compiler if it supports
them [default=no] 影响安装的环境变量区 :
CC C编译器的命令
CFLAGS C编译器标志
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CPP C preprocessor
CXXCPP C++ preprocessor
MYSQL_CONFIG
Full path to mysql_config program
CURL_CONFIG config script used for curl
CURL_CFLAGS CFLAGS used for curl
CURL_LIBS LIBS used for curl
LIBCURL_CPPFLAGS
C preprocessor flags for LIBCURL headers
LIBCURL_LDFLAGS
linker flags for LIBCURL libraries
DRIZZLED_BINARY
Absolute path to drizzled executable
LIBDRIZZLE_CPPFLAGS
C preprocessor flags for LIBDRIZZLE headers
LIBDRIZZLE_LDFLAGS
linker flags for LIBDRIZZLE libraries
TOKYOCABINET_CPPFLAGS
C preprocessor flags for TOKYOCABINET headers
TOKYOCABINET_LDFLAGS
linker flags for TOKYOCABINET libraries
HIREDIS_CPPFLAGS
C preprocessor flags for HIREDIS headers
HIREDIS_LDFLAGS
linker flags for HIREDIS libraries
MEMCACHED_BINARY
Absolute path to memcached executable
SPHINXBUILD Absolute path to sphinx-build executable
LCOV Absolute path to lcov executable
LCOV_GENHTML
Absolute path to genhtml executable
CYASSL_CPPFLAGS
C preprocessor flags for CYASSL headers
CYASSL_LDFLAGS
linker flags for CYASSL libraries
MCHECK_CPPFLAGS
C preprocessor flags for MCHECK headers
MCHECK_LDFLAGS
linker flags for MCHECK libraries 192.168.137.111 job 服务启动
/usr/sbin/gearmand -d --pid-file=/var/run/gearman/gearmand.pid --user=gearman --daemon --log-file=/var/log/gearman-job-server/gearman.log --listen=127.0.0.1 [root@www gearmand]# /usr/local/gearmand/sbin/gearmand -h Allowed options: Allowed options: General options:
-b [ --backlog ] arg (=) Number of backlog connections for listen.
-d [ --daemon ] Daemon,detach and run in the background. --exceptions Enable protocol exceptions by default.
-f [ --file-descriptors ] arg Number of file descriptors to allow for the process (total connections will be slightly less).
Default is max allowed for user. -h [ --help ] Print this help menu.
-j [ --job-retries ] arg (=) Number of attempts to run the job before the job server removes it.
This is helpful to ensure a bad job does not crash all available workers. Default is no limit. 192.168.137.222
[root@www php]# cat worderOne.php
<?php
$worker=new GearmanWorker();
$worker->addServer("192.168.137.111",); //连接到Job server 上
$worker->addFunction("reverse","my_reverse_function");
while ($worker->work()); function my_reverse_function($job)
{
return strrev($job->workload())." worker---1--";
} 192.168.137.222
[root@www php]# cat worderTwo.php
<?php
$worker=new GearmanWorker();
$worker->addServer("192.168.137.111",); //连接到Job server 上
$worker->addFunction("reverse","my_reverse_function");
while ($worker->work()); function my_reverse_function($job)
{
return strrev($job->workload())." worker---2--Two";
} 192.168.137.111
[root@www php]# cat client.php
<?php
$client=new GearmanClient();
$client->addServer("192.168.137.111",); //连接到Job server上 echo $client->doNormal("reverse","Hello World!"); openresty 版本
https://github.com/zhhchen/lua-resty-gearman

gearman学习笔记的更多相关文章

  1. gearman学习笔记1

    1.简介       gearman是一个分布式开发框架,适合处理一些必须处理但是不影响主流程的操作,比如保存日志.发送邮件.缩略图片等.最早是基于perl语言的,2008年发布的时候改为C++语言开 ...

  2. 【Gearman学习笔记】分布式处理入门

    1.首先,确保你已经安装了gearmand环境并且语言绑定(language binding)已经生效. 2.涉及到的各个部分: ServerThe server, gearmand, will co ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  7. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  8. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  9. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

随机推荐

  1. socket系统调用

    SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) { int retval; struct socket *sock; in ...

  2. Linux内核Ramdisk(initrd)机制【转】

    转自:http://www.cnblogs.com/armlinux/archive/2011/03/30/2396827.html 摘要:对于Linux用户来说,Ramdisk并不陌生,可是为什么需 ...

  3. CAS和AQS

    一.CAS CAS(Compare And Swap),即比较并交换.是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数——内存位置(V).预期原值(A)和新值(B).如果内 ...

  4. [转]在C#程序设计中使用Win32类库

    http://blog.163.com/j_yd168/blog/static/496797282008611326218/     C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 ...

  5. 八、springboot整合redis

    整合Redis 一. 注解方式实现添加缓存 1.在pom.xml加入依赖 <!-- 配置使用redis启动器 --> <dependency> <groupId>o ...

  6. python-windows下将单个py文件生成exe

    突然要生成一个exe给其他人用.紧急搜索下了 命令行参数获取用如下方法 from sys import argv base64path = argv[1] argv这个元组就是你的参数列表了,同C一样 ...

  7. java基础46 IO流技术(输出字符流/缓冲输出字符流)

    一.输出字符流 1.1.输出字符流体系 --------| Writer:输出字符流的基类(抽象类)  ----------| FileWriter:向文件输出数据输出字符流(把程序中的数据写到硬盘中 ...

  8. asterisk各种报错

    1.控制台打印出: Got SIP response "Temporarily Unavailable" back from 210.13.87.110:5060   造成原因:在 ...

  9. vue 递归组件

    如果你的项目里面的数据结构是一个树状的数据结构 然后递归组件是一个很好的一个解决你这个数据结构的一个方式 就是组件内部调用自身 tree.vue里面直接tree-node <tree-node& ...

  10. python 常用的标准库及第三方库

    标准库Python拥有一个强大的标准库.Python语言的核心只包含数字.字符串.列表.字典.文件等常见类型和函数,而由Python标准库提供了系统管理.网络通信.文本处理.数据库接口.图形系统.XM ...