php基于 swoole 实现的异步处理任务功能示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-12-11 12:52:08 浏览: 评论:0
这篇文章主要介绍了php基于 swoole 实现的异步处理任务功能,涉及swoole的安装、配置及php调用swoole守护进程监控任务相关实现技巧,需要的朋友可以参考下。
本文实例讲述了php基于 swoole 实现的异步处理任务功能,分享给大家供大家参考,具体如下:
安装swoole:
下载官方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) {
- $task_id = $serv->task("Async");
- echo "Dispath AsyncTask: id=$task_id\n";
- });
- $serv->on('Task', function ($serv, $task_id, $from_id, $data) {
- echo "New AsyncTask[id=$task_id]".PHP_EOL;
- $serv->finish("$data -> OK");
- });
- $serv->on('Finish', function ($serv, $task_id, $data) {
- echo "AsyncTask[$task_id] Finish: $data".PHP_EOL;
- });
- $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) {
- $cli->send("GET / HTTP/1.1\r\n\r\n");
- });
- $client->on("receive", function(swoole_client $cli, $data){
- echo "Receive: $data";
- $cli->send(str_repeat('A', 100)."\n");
- sleep(1);
- });
- $client->on("error", function(swoole_client $cli){
- echo "error\n";
- });
- $client->on("close", function(swoole_client $cli){
- echo "Connection close\n";
- });
- $client->connect('127.0.0.1', 9502);
打开一个新的窗口命令行执行
php client.php
执行完后会发现在server.php的窗口就会有信息输出
Tags: swoole php异步处理任务
- 上一篇:php实现简单的守护进程创建、开启与关闭操作
- 下一篇:php中的依赖注入实例详解
相关文章
- ·php异步多线程swoole使用实例程序(2015-04-15)
- ·PHP程序员学习使用Swoole的理由(2018-09-14)
- ·swoole_process父子进程管道通信的代码示例(2020-01-16)
- ·swoole事件处理流程(2020-04-06)
- ·Swoole协程与传统fpm同步模式比较(2020-04-09)
- ·PHP框架Swoole定时器Timer特性分析(2021-04-05)
- ·php异步多线程swoole用法实例(2021-04-26)
- ·使用php+swoole对client数据实时更新(一)(2021-07-04)
- ·PHP+swoole实现简单多人在线聊天群发(2021-07-06)
- ·基于 Swoole 的微信扫码登录功能实现代码(2021-08-30)
- ·基于swoole实现多人聊天室(2021-10-01)
- ·swoole_process实现进程池的方法示例(2021-11-01)
- ·Swoole实现异步投递task任务案例详解(2021-11-14)
- ·PHP扩展Swoole实现实时异步任务队列示例(2021-11-17)
- ·PHP+swoole+linux实现系统监控和性能优化操作示例(2021-11-17)
- ·Swoole4.4协程抢占式调度器详解(2021-11-23)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)