php swoole 非同步處理任務例子

2021-08-08 13:55:21 字數 1607 閱讀 6057

安裝swoole:

$ cd swoole

# 進入 swoole 目錄

$ phpize

$ ./

configure

--with

-php

-config

=/usr/

local

/php

/bin

/php

-config #注意檢視伺服器上是否有這個路徑

$ make

&&make install

修改php.in檔案
vi 

/usr

/local

/php

/lib

/php

.ini

增加如下內容

extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/swoole.so"  //版本不同路徑可能不同

儲存後重啟php-fpm
$ /etc/init.d/php-fpm restart
php -m 命令檢視是否新增成功 成功則會看到有swoole模組

$ php -m

服務端作為守護程序監控任務,新建server.php:

<?php

$serv = new swoole\server("127.0.0.1", 9502);

$serv->set(array('task_worker_num' => 4));

$serv->on('receive', function($serv, $fd, $from_id, $data) );

$serv->on('task', function ($serv, $task_id, $from_id, $data) );

$serv->on('finish', function ($serv, $task_id, $data) );

$serv->start();

用命令列模式開啟

php server.php

新建乙個client.php

<?php

$client = new swoole_client(swoole_sock_tcp, swoole_sock_async);

$client->on("connect", function(swoole_client $cli) );

$client->on("receive", function(swoole_client $cli, $data));

$client->on("error", function(swoole_client $cli));

$client->on("close", function(swoole_client $cli));

$client->connect('127.0.0.1', 9502);

開啟乙個新的視窗命令列執行 php client.php

執行完後會發現在server.php的視窗就會有資訊輸出

非同步處理任務框架

非同步處理任務框架 非同步獲取頭像 第三個引數就是非同步任務執行完畢後的返回值 author administrator public class loadimageasyntask extends asynctask public inte ce loadimageasyntaskcallback...

sidekiq 非同步處理任務

1.安裝 gem install sidekiq或者在gemfile檔案中新增 gem sidekiq gem slim 1.3.0 gem sinatra 1.3.0 require nil2.掛載mount 可以讓你監控專案執行狀態 require sidekiq web mount sidek...

Spring配置非同步任務處理

在專案開發中,我們經常會有非同步呼叫任務的需求,比如 a.在與第三方系統資料互動時,需要另開乙個執行緒去執行互動任務 b.系統中日誌記錄不希望引起響應遲緩 c.簡訊 傳送郵件等 web.xml 3.0才開始支援非同步,spring3.2以上版本中提供了 async註解幫助我們更好的處理類似問題,以免...