资讯专栏INFORMATION COLUMN

PHP异步操作(swoole, gearman)

Fundebug / 1062人阅读

摘要:异步操作废话不说直接进入正题应用场景业务逻辑中经常会出现发送信息发送邮件记录日志等等这个时候用异步再好不过了用户直接的体验就是使用的贼流畅使用技术这个不仅仅支持了其他语言也支持有的扩展用起来更方便感觉上异步队列不同点有个队列专门用来存储发送

  

PHP异步操作

废话不说直接进入正题:
应用场景:
业务逻辑中经常会出现发送信息,发送邮件,记录日志等等,这个时候用异步再好不过了,用户直接的体验就是:使用的贼流畅~~

使用技术:
1.gearman : 这个不仅仅支持PHP了其他语言也支持
2.swoole : 有PHP的扩展,用起来更方便
NOTE:感觉上 gearman = swoole + 异步队列;
不同点:
1.gearman有个队列专门用来存储发送过来的异步请求,即使worker挂了,重启以后,照样也能将没有处理的请求处理.swoole在这点上没有专门的处理
2.swoole的使用安装更为方便,使用C语言写的PHP扩展,性能测试了下,杠杠的,使用到目前为止没有什么问题,gearman的安装比较麻烦,网上文章一大堆,试了很多都没用,后来到了gearman的官网才解决掉.
3.gearman的历史比较悠久,使用场景很丰富,有详细的文档,业务量不算很大的使用,非常稳定.swoole是中国人开发的(支持国产),有很多大型公司在使用,

详细的gearman安装文档:

yum -y install libgearman

yum install libgearman-devel

wget http://pecl.php.net/get/gearman-1.1.2.tgz

tar -zxvf gearman-1.1.2.tgz

cd gearman-1.1.2

/data/apps/php/bin/phpize

./configure --prefix=/data/apps/phpgearman --with-php-config=/data/apps/php/bin/php-config

make&& make install

vim /data/apps/php/etc/php.ini
增加
extension=gearman.so
测试
vim worker.php 

addServer();
$worker->addFunction("reverse", "my_reverse_function");
while ($worker->work());

function my_reverse_function($job)
{
  return strrev($job->workload());
}
?>
vim client.php

addServer();
print $client->do("reverse", "Hello World!");
?>

php client.php
!dlroW olleH

安装swoole的PHP扩展:

wget http://pecl.php.net/get/swoole-1.7.17.tgz
tar -zxvf swoole-1.7.17.tgz
cd swoole-1.7.17
phpize
./configure
make && make install

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/20970.html

相关文章

  • Gearman的安装和使用

    摘要:启动和如下信息则表示成功查看版本安装扩展从下载最新扩展需下载最新源码包,并解压缩安装安装成功后信息然后,配置文件增加内容重启后,出现如下信息则表示安装扩展成功。 首发于 樊浩柏科学院 Gearman 是一个分布式任务分发系统,通过程序调用(API,跨语言)分布式地把工作委派给更适合做某项工作的机器,且这些机器可以以并发的、负载均衡的形式来共同完成某项工作。当计算密集型场景时,适合在后...

    U2FsdGVkX1x 评论0 收藏0
  • swoole安装全纪录

    摘要:的为提供了版本,软件源安装的默认以的状态运行在,比使用以的方式性能更好。 Ondřej Surý 的 PHP PPA 为 Ubuntu 16.04/14.04 提供了 PHP7.2 版本,软件源安装的 PHP 默认以 Unix Socket 的状态运行在 /run/php/php7.2-fpm.sock,比使用 TCP 以 localhost:9000 的方式性能更好。 1、安装软件源...

    Ajian 评论0 收藏0
  • Gearman 使用小知识

    摘要:目前项目采用的是来实现异步任务。关于介绍通俗的来说是一个分发任务的程序框架使用的应用通常有三部分组成一个一个一个任务服务器。的作用是提出一个任务交给任务服务器。请求的调度者,用来负责协调把发出的请求转发给合适的。 众所周知,PHP要实现异步任务一般都是通过 Gearman Beanstalkd 等第三方来实现的。目前项目采用的是 Gearman 来实现异步任务。 关于Gearman介绍...

    ideaa 评论0 收藏0
  • JAVA通过Gearman实现MySQL到Redis的数据同步(异步复制)

    摘要:但是这需要对文件以及有非常深入的理解,同时由于存在多种形式,分析实现同步的工作量是非常大的。因此这里选择了一种开发成本更加低廉的方式,借用已经比较成熟的,将数据首先放入中,然后通过一个自己编写的,将数据同步到。此类连接远程的。 MySQL到Redis数据复制方案 无论MySQL还是Redis,自身都带有数据同步的机制,像比较常用的 MySQL的Master/Slave模式 ,就是由Sl...

    doodlewind 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<