thinkphp5 异步调用方法_thinkphp5 swoole 执行异步任务
目录结构:
服务器端:
/*
*author:hdj
*/
namespace app\Console;
use think\console\Command;
use think\console\Input;
use think\console\Output;
class Websocket extends Command{
protected $server;
protected function configure()
{
$this->setName('websocket:start')->setDescription('Start Web Socket Server!');
}
protected function execute(Input $input, Output $output)
{
$serv = new \swoole_server('0.0.0.0',9501);
$serv->set(array('task_worker_num' => 4));
$serv->on('connect', function ($serv, $fd){
echo $fd."客户端已经连接进来了.\n";
});
$serv->on('receive', function($serv, $fd, $from_id, $data) {
$task_id = $serv->task($data);
echo "开始投递异步任务 id=$task_id\n";
});
$serv->on('task', function ($serv, $task_id, $from_id, $data) {
echo "接收异步任务[id=$task_id]".PHP_EOL;
for ($i = 0 ; $i<10000;$i++){
if($i%2==0){
echo 'send'.$i.' success'."\n";
}else{
echo 'send'.$i.' fail'."\n";
}
sleep(1);
}
$serv->finish("$data -> OK");
});
$serv->on('finish', function ($serv, $task_id, $data) {
echo "异步任务[id=$task_id]完成".PHP_EOL;
});
$serv->start();
}
}
进入你的根目录 执行 php think websocket:start
客户端:
namespace app\index\controller;
use think\Controller;
class Test extends Controller
{
public function index(){
$client = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);
$ret = $client->connect("23.27.127.32", 9501);
if(empty($ret)){
echo 'error!connect to swoole_server failed';
} else {
$client->send('blue');
}
}
}
服务端显示:
你是不是多少有了解一点,但是你却对这个不精啊!免费分享tp,laravel,swoole,swoft微服务、SQL性能优化,分布式、高并发等教程,各种大牛都是1-78年PHP开发者,每天还有11年的架构师做课程讲解,助你进阶中高级PHP程序员,增值涨薪!
thinkphp5 异步调用方法_thinkphp5 swoole 执行异步任务相关推荐
- (二)线程--通过委托异步调用方法
(一).描述 先运行个简单的线程示例,认识一下线程 通过委托调用方法,以及使用AsyncResult判断线程的状态 (二).代码 using System; using System.Thre ...
- java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?
你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧! 1.利用Spring的异步方法去执行 注:没有返回值 在启动类又或者是配置类加 ...
- SpringBoot异步调用方法
SpringBoot异步调用方法 一.spring boot--使用异步请求,提高系统的吞吐量 https://blog.csdn.net/liuchuanhong1/article/details/ ...
- thinkphp5 异步调用方法_详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
本文介绍了thinkphp5+swoole实现异步邮件群发(SMTP方式),分享给大家,具体如下: 1.环境说明 阿里云centos7 thinkphp5.0.11 swoole2.0.8 2.tp实 ...
- 17委托异步调用方法
抽象出一个炒菜的类. 1: //炒菜 2: public class Cooking 3: { 4: public string Cook(string food1, string food2) 5: ...
- jquery 异步调用方法中不能给全局变量赋值的原因及解决办法
在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t ...
- WinForm 异步调用方法
假如要在一个线程中异步执行一个方法,则先创建一个该方法的委托类型,然后CLR会自动为该委托类型定义一个BeginInvoke方法和EndInvoke方法,我们就靠这两个方法异步调用委托类型指向的方法( ...
- Spring Boot 中使用@Async实现异步调用,加速任务执行!
欢迎关注方志朋的博客,回复"666"获面试宝典 什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照 ...
- 异步调用方法时异常的捕获
在异步调用一个方法时,由于不在一个线程内,异常的处理不同于普通同步调用,但可以在EndXXX时,使用try{}catch{}来捕获. public static void main(string[] ...
最新文章
- Python字符串中含有某子字符串的个数
- 用GAN还原语义标注图!还能手动改细节(附论文、代码)
- redis 的一主二从三哨兵模式
- errno的基本用法
- 解决Chrome浏览器高版本无法拖拽离线安装CRX格式插件的问题
- C++ 简单的语音合成(TTS,即文字转语音)类
- 《ASP.NET Core项目开发实战入门》送书活动结果公布
- 问题总结2015/05/05
- python入门--字符串,切片
- iqooneo系统要不要更新_IQOOZ1即将发布,和IQOOneo3、OPPORenoACE对比,谁更值得入手?...
- TCP/IP详解 笔记十一
- HDU 2063:过山车(匈牙利算法模板题)
- coolfire文章之五
- 调整计算机屏幕亮度快捷键,笔记本亮度调节的快捷键
- 网页转圈打不开服务器,打不开网页怎么回事
- rar文件ubuntu_如何在Ubuntu上提取RAR文件
- 医学计算机课程标准,《医学影像诊断学》课程标准.doc
- (SOJ) check if a word is on a given Boggle board
- Linux命令手动清除缓存
- 网易双11“超级工程”:反欺诈系统应用实践
热门文章
- asp.net core AuthenticationMiddleware 在WebApi中的的使用
- Connect 2016过后,你的信仰势必需要更大的容器
- .NET Core VS Code 环境配置
- HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
- 用c语言递归函数做扫雷,【C语言基础学习---扫雷游戏】(包含普通版+递归炼狱版)...
- 阿里云ECS服务器多种实例规格如何选择
- Nginx—— Rewrite规则的使用
- 数据分块加载——BigPipe 技术【类似facebook】
- 【ArcGIS微课1000例】0005:空间连接(Spatial Join)
- 【PhotoScan精品教程】任务二:刺像控点,平差,质量报告精度检查,像控点POS权重调配