摘要:異步操作廢話不說直接進入正題應用場景業務邏輯中經常會出現發送信息發送郵件記錄日志等等這個時候用異步再好不過了用戶直接的體驗就是使用的賊流暢使用技術這個不僅僅支持了其他語言也支持有的擴展用起來更方便感覺上異步隊列不同點有個隊列專門用來存儲發送
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20970.html
摘要:啟動和如下信息則表示成功查看版本安裝擴展從下載最新擴展需下載最新源碼包,并解壓縮安裝安裝成功后信息然后,配置文件增加內容重啟后,出現如下信息則表示安裝擴展成功。 首發于 樊浩柏科學院 Gearman 是一個分布式任務分發系統,通過程序調用(API,跨語言)分布式地把工作委派給更適合做某項工作的機器,且這些機器可以以并發的、負載均衡的形式來共同完成某項工作。當計算密集型場景時,適合在后...
摘要:的為提供了版本,軟件源安裝的默認以的狀態運行在,比使用以的方式性能更好。 Ond?ej Sury 的 PHP PPA 為 Ubuntu 16.04/14.04 提供了 PHP7.2 版本,軟件源安裝的 PHP 默認以 Unix Socket 的狀態運行在 /run/php/php7.2-fpm.sock,比使用 TCP 以 localhost:9000 的方式性能更好。 1、安裝軟件源...
摘要:目前項目采用的是來實現異步任務。關于介紹通俗的來說是一個分發任務的程序框架使用的應用通常有三部分組成一個一個一個任務服務器。的作用是提出一個任務交給任務服務器。請求的調度者,用來負責協調把發出的請求轉發給合適的。 眾所周知,PHP要實現異步任務一般都是通過 Gearman Beanstalkd 等第三方來實現的。目前項目采用的是 Gearman 來實現異步任務。 關于Gearman介紹...
摘要:但是這需要對文件以及有非常深入的理解,同時由于存在多種形式,分析實現同步的工作量是非常大的。因此這里選擇了一種開發成本更加低廉的方式,借用已經比較成熟的,將數據首先放入中,然后通過一個自己編寫的,將數據同步到。此類連接遠程的。 MySQL到Redis數據復制方案 無論MySQL還是Redis,自身都帶有數據同步的機制,像比較常用的 MySQL的Master/Slave模式 ,就是由Sl...
閱讀 3478·2021-11-08 13:30
閱讀 3584·2019-08-30 15:55
閱讀 688·2019-08-29 15:16
閱讀 1750·2019-08-26 13:57
閱讀 2091·2019-08-26 12:18
閱讀 789·2019-08-26 11:36
閱讀 1733·2019-08-26 11:30
閱讀 3017·2019-08-23 16:46