cli模式下执行thinkphp
1、cd 项目根目录
2、php index.php admin/index/index --执行 模块/控制器/方法名

异步消息队列
1、服务器端核心代码

   /*** 脚本任务系统*/public function server(){$serv = new \swoole_server("0.0.0.0", 8082);//日志会记录你错误的数据$serv->set(array('task_worker_num' => 20, 'log_file' => './swoole.log'));$serv->on('Receive', function ($serv, $fd, $from_id, $data) {$task_id = $serv->task($data);});//执行任务模块$serv->on('Task', function ($serv, $task_id, $from_id, $data) {//1秒执行一次$num = 0;$timer_id = $serv->tick(1000, function ($id) use ($serv,$data,$num) {$url = "http://notify.yingxiaom.top/index.php/admin/index/test";$result = $this->request_post($url);if($result == 'SUCCESS'){echo "1";file_put_contents("b.txt","1",FILE_APPEND);$serv->clearTimer($id);}});//10秒后销毁$serv->after(1000*60*2, function () use ($serv,$timer_id) {$serv->clearTimer($timer_id);});$serv->finish($data);});//任务结束$serv->on('Finish', function ($serv, $task_id, $data) {echo "AsyncTask[$task_id] Finish: $data" . PHP_EOL;});$serv->start();}/* author@zhou* 功能:发送数据* return*/public function request_post($url ='',$param ='') {$postUrl = $url;$curlPost = $param;$ch = curl_init();//初始化curlcurl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定网页curl_setopt($ch, CURLOPT_HEADER, 0);//设置headercurl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8','Content-Length: ' . strlen($curlPost)));curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);$data = curl_exec($ch);//运行curl// var_dump(curl_errno($ch));die;curl_close($ch);return $data;}

 

2、客户端代码

 /*** description:客户端*/public function client(){$phone = I("phone");$client = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC);$ret = $client->connect("127.0.0.1", 8082);if(empty($ret)){echo 'error!connect to swoole_server failed';} else {if($phone){$client->send($phone);//手机号}echo "SUCCESS";}}

 

3、注意事项
定时任务执行接口请求时返回 SUCCESS 清除定时
定时器会在单位时间内统一清除
worker_num 默认为cpu核数 (1-4倍最合理)
task_worker_num设置 每秒最大请求数 * 单个任务耗时(单位s) / worker_num
单个task的处理耗时,如100ms,那一个进程1秒就可以处理1/0.1=10个task
task投递的速度,如每秒产生2000个task
2000/10=200,需要设置task_worker_num => 200,启用200个task进程
通用传参方式:
格式 :function () use ($param1,$param2)
$serv->after(1000*60*2, function () use ($serv,$timer_id) {
$serv->clearTimer($timer_id);
});

 

转载于:https://www.cnblogs.com/zc123/p/9105941.html

thinkphp整合swoole相关推荐

  1. swoole会合并到php吗,thinkphp整合swoole

    cli模式下执行thinkphp 1.cd 项目根目录 2.php index.php admin/index/index --执行 模块/控制器/方法名 异步消息队列 1.服务器端核心代码 /** ...

  2. Swoole与Thinkphp整合

    Swoole与Thinkphp整合教程:(1)Swoole与Thinkphp整合服务端讲解:(2)Swoole与Thinkphp整合服务启动文件详解:(3)Swoole与Thinkphp整合常用命令; ...

  3. thinkphp整合系列之gulp实现前端自动化

    这又是一个一次整合终身受益:不止是终身:换个项目同样可以很方便复用:不信你看另一个项目: thinkphp整合系列之gulp实现前端自动化 虽然我等叫php程序猿:但是不可避免的是要跟html打交道的 ...

  4. thinkphp整合极验滑动验证码源码演示下载

    thinkphp整合极验滑动验证码源码演示下载-二当家的php源码下载 <!DOCTYPE html><html lang="en"><head> ...

  5. Thinkphp整合各个功能

    thinkphp整合Auth权限管理.支付宝.微信支付.阿里oss.友盟推送.融云即时通讯.云通讯短信.Email.Excel.PDF等等: 基于thinkphp扩展了大量的功能:而不改动thinkp ...

  6. ThinkPHP整合百度Ueditor图文教程

    ThinkPHP整合百度Ueditor图文教程 ThinkPHP整合百度Ueditor,基于黄永成老师的视频说明的 申明:最好大家都能写绝对路径的都写好绝对路径比如:window.UEDITOR_HO ...

  7. bootstrap php ajax,ThinkPHP 整合Bootstrap Ajax分页样式

    ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $wh ...

  8. php ucenter,Thinkphp整合Ucenter视频教程

    课程知识点:在本视频课程中你将学会以下知识--了解Ucenter的功能及程序结构,了解Thinkphp整合Ucenter并应用,了解Thinkphp整合Ucenter的流程. 课程特色:由浅入深,条理 ...

  9. ThinkPHP整合支付宝担保交易

    ThinkPHP整合支付宝担保交易本代码参考大神 http://www.thinkphp.cn/code/240.html 的思路 1.登陆支付宝后台,下载担保交易的集成包. 2.下载完成后的文件说明 ...

最新文章

  1. 70页论文,图灵奖得主Yoshua Bengio一作:“生成流网络”拓展深度学习领域
  2. Zabbix 中文乱码解决
  3. java实现apriori算法_用Java实现插入排序算法
  4. 计算机表格复制粘贴后不变,excel表格复制粘贴后格式不变
  5. Java 集合List、Set、HashMap操作三(查找List中的最大最小值、遍历HashTable、List元素替换、List查找位置)
  6. Oracle 19c 新特性:自动化索引 Automatic indexing 实践
  7. 将给出的整数x翻转_LeetCode(七)整数反转
  8. OpenSSL常用命令总结
  9. uniapp 打包成微信小程序
  10. protues 选项卡说明
  11. IP Scanner Pro for Mac 4.05 局域网IP扫描工具
  12. STM32CubeMX+ETH+DP83848+Lwip 成功ping通(基于stm32F107开发板)
  13. 应用向左,理论向右,计算机2021的冰火两重天
  14. ADRC自抗扰控制自学笔记(包含simulink仿真)(转载)
  15. MathType中输入破折号的教程
  16. android唱吧源码,Android版唱吧K歌王
  17. 什么是中华田园敏捷开发?
  18. 弘辽科技:淘宝新店运营推广的几大技巧
  19. 魔百盒九联UNT401H,通刷刷机固件
  20. linux下修改或删除包含乱码、特殊符号等文件名的文件

热门文章

  1. 数据中心使用dtu远程连接oracel 9i数据库问题
  2. 操作系统引导--从实模式到保护模式
  3. HTML5 progress元素的样式控制、兼容与实例
  4. jQuery遍历之next()、nextAll()方法使用实例
  5. 后台开发必读书籍--算法导论
  6. linux命令history
  7. 动态规划之等差递减区间个数
  8. 深度理解do{} while(0)语句的作用
  9. Zephyr内核到1.5版本的改进
  10. 怎么对jdk核心包进行跟踪调试,并查看调试中的变量值