gearman -d 开启后一直显示不能连接被拒接 开启了守护进程就可以了
来源:互联网 发布:福州网络家长学校注册 编辑:程序博客网 时间:2024/04/27 21:02
安装 Gearman
向一个机器添加 Gearman 需要两步:第一步构建并启动这个守护程序,第二步构建与 PHP 版本相匹配的 PHP 扩展。这个守护程序包包括构建此扩展所需的所有库。
首先,下载 Gearman 守护程序 gearmand
的最新源代码,解压缩这个 tarball,构建并安装此代码(安装需要有超级用户的权限,即根用户权限)。
$ wget http://launchpad.net/gearmand/trunk/\ 0.10/+download/gearmand-0.10.tar.gz$ tar xvzf gearmand-0.10.tar.gz$ cd gearmand-0.10$ ./configure$ make$ sudo make install
安装 gearmand
后,构建 PHP 扩展。您可以从 PECL 获取这个 tarball,也可以从 Github 复制该存储库。
$ wget http://pecl.php.net/get/gearman-0.6.0.tgz$ cd pecl-gearman## or#$ git clone git://github.com/php/pecl-gearman.git$ cd pecl-gearman
有了这些代码后,就可以开始构建扩展了:
$ phpize$ ./configure$ make$ sudo make install
这个 Gearman 守护程序通常被安装在 /usr/sbin。可以从命令行直接启动此守护程序,也可以将这个守护程序添加到启动配置中,以便在机器每次重启时就可以启动这个守护程序。
接下来,需要安装 Gearman 扩展。打开 php.ini 文件(可以通过 php --ini
命令快速找到这个文件),然后添加代码行 extension = gearman.so
:
$ php --iniLoaded Configuration File: /etc/php/php.ini$ vi /etc/php/php.ini ...extension = gearman.so
保存此文件。要想验证扩展是否启用,请运行 php --info
,然后查找 Gearman:
$ php --info | grep "gearman support"gearmangearman support => enabledlibgearman version => 0.10
此外,还可以用一个 PHP 代码片段来验证构建和安装是否得当。将这个小应用程序保存到 verify_gearman.php:
<?php print gearman_version() . "\n";?>
接下来,从命令行运行此程序:
$ php verify_gearman.php0.10
如果这个版本号与之前构建和安装的 Gearman 库的版本号相匹配,那么系统就已准备好了。
回页首
运行 Gearman
我们前面提到过,一个 Gearman 配置有三个角色:
- 一个或多个 producer 生成工作请求。每个工作请求命名它所想要的函数,例如
email_all
或analyze
。 - 一个或多个 consumer 完成请求。每个 consumer 命名它所提供的一个或多个函数并向 agent 注册这些功能。一个 consumer 也可以被称为是一个 worker。
- 代理对与之建立连接的那些 consumer 提供的所有服务进行集中编制。它将 producer 与恰当的 consumer 联系起来。
借助如下的命令行,可以立即体验 Gearman:
- 启动这个 agent,即 Gearman 守护程序:
$ sudo /usr/sbin/gearmand --daemon
- 用命令行实用工具
gearman
运行一个 worker。这个 worker 需要一个名字并能运行任何命令行实用工具。例如,可以创建一个 worker 来列出某个目录的内容。-f
参数命名了该 worker 所提供的函数:$ gearman -w -f ls -- ls -lh
- 最后的一个代码块是一个 producer,或用来生成查找请求的一个作业。也可以用
gearman
生成一个请求。同样,用-f
选项来指定想要从中获得帮助的那个服务:$ gearman -f ls < /dev/nulldrwxr-xr-x@ 43 supergiantrobot staff 1.4K Nov 15 15:07 gearman-0.6.0-rw-r--r--@ 1 supergiantrobot staff 29K Oct 1 04:44 gearman-0.6.0.tgz-rw-r--r--@ 1 supergiantrobot staff 5.8K Nov 15 15:32 gearman.htmldrwxr-xr-x@ 32 supergiantrobot staff 1.1K Nov 15 14:04 gearmand-0.10-rw-r--r--@ 1 supergiantrobot staff 5.3K Jan 1 1970 package.xmldrwxr-xr-x 47 supergiantrobot staff 1.6K Nov 15 14:45 pecl-gearman
回页首
从 PHP 使用 Gearman
从 PHP 使用 Gearman 类似于之前的示例,惟一的区别在于这里是在 PHP 内创建 producer 和 consumer。每个 consumer 的工作均封装在一个或多个 PHP 函数内。
清单 1 给出了用 PHP 编写的一个 Gearman worker。将这些代码保存在一个名为 worker.php 的文件中。
清单 1. Worker.php
<?php $worker= new GearmanWorker(); $worker->addServer(); $worker->addFunction("title", "title_function"); while ($worker->work()); function title_function($job) { return ucwords(strtolower($job->workload())); }?>
清单 2 给出了用 PHP 编写的一个 producer,或 client。将此代码保存在一个名为 client.php 的文件内。
清单 2. Client.php
<?php $client= new GearmanClient(); $client->addServer(); print $client->do("title", "AlL THE World's a sTagE"); print "\n";?>
现在,可以用如下的命令行连接客户机与 worker 了:
$ php worker.php &$ php client.phpAll The World's A Stage$ jobs[3]+ Running php worker.php &
原文
http://www.ibm.com/developerworks/cn/opensource/os-php-gearman/
- gearman -d 开启后一直显示不能连接被拒接 开启了守护进程就可以了
- swoole不小心开启了守护进程如何关闭?
- 更新了VMWare Tools后还是不能开启3D加速
- 开启守护进程daemon
- 不能连接到D-BUS守护进程
- Tomcat 开启后会自动退出 nohup实现守护进程
- sails.js 开启守护进程
- VC/MFC中当使用了文件对话框后,就不能连接数据库了,为什么?
- 开启lantern,使用自动弹出的浏览器可以go abroad,为什么换个浏览器就不行go abroad了呢?
- 平民社区开启了
- 哇噻夫微商论坛开启了
- Android动画问题:主线程在运行一个动画,但开启子线程后动画就停止了
- 已经开启了ARC dealloc 还可以用?
- Docker 开启守护进程后 无法执行docker build 等指令
- listctrl 显示位图,只要建立一个CImageList 和listctrl建立连接就可以了
- 更新最新版360后,无法开启64位虚拟机了
- java连接开启了sasl的memcache服务
- 后车库,就够了,紧了紧,结构性连接
- 6.1.3 系统总线的结构
- Python(八)切片、迭代、列表生成式、生成器
- [模板]树状数组(以hdu2352 Stars(一维)/hdu1195 Mobile phones(二维)为例
- aliyun oss 客户端ossfs安装
- thinkphp连贯操,think函数方法
- gearman -d 开启后一直显示不能连接被拒接 开启了守护进程就可以了
- RecyclerView控件列表项布局match_parent属性失效的根本原理
- my 2 c
- mybatis 批量添加 过滤库里已有数据
- ContentProvider内容提供者,跨进程访问方式
- 中文和Unicode编码互转
- 关于SVG自适应-待完善
- 简单的js二级联动
- Query中ajax的使用与缓存问题的解决方法