当前位置: 首页 > wzjs >正文

上海市建设安全协会网站一360美工常用找素材网站

上海市建设安全协会网站一360,美工常用找素材网站,网站建设给客户看的ppt模板,怎样申请自媒体账号学习路之PHP --异步执行功能 (无需安装任何框架) 简介一、工具类二、调用三、异步任务的操作四、效果: 简介 执行异步任务是一种很常见的需求,如批量发邮箱,短信等等执行耗时任务时,需要程序异步执行&…

学习路之PHP --异步执行功能 (无需安装任何框架)

  • 简介
  • 一、工具类
  • 二、调用
  • 三、异步任务的操作
  • 四、效果:

简介

执行异步任务是一种很常见的需求,如批量发邮箱,短信等等执行耗时任务时,需要程序异步执行,给用户带来好的体验。

在php异步执行代码就很尬尴,不像java 可以创建多线程,在php中也可以用pcntl_fork()实现创建子进程,来实现异步,但这样可能会产生很多僵尸进程。其他的方式借助框架实现,如优秀的swoole框架,本文介绍无需安装如何框架扩展,php自带的方式处理下面直接上代码,我用的thinkphp6

一、工具类

extend\util\AsyncHook.php,代码如下

<?php
namespace util;class AsyncHook
{private static $hook_list = array();private static $hooked = false;/*** hook函数fastcgi_finish_request执行** @param callback $callback* @param array $params*/public static function hook($callback, $params = []){trace('这里是'.__CLASS__.'\\'.__FUNCTION__);self::$hook_list[] = array('callback' => $callback, 'params' => $params);if (self::$hooked == false) {self::$hooked = true;register_shutdown_function(array(__CLASS__, '__run'));}}/*** 由系统自动调用:支持win10:phpstudy** @return void*/public static function __run(){if (function_exists('fastcgi_finish_request')) {fastcgi_finish_request();}if (empty(self::$hook_list)) {return;}foreach (self::$hook_list as $hook) {$callback = $hook['callback'];$params   = $hook['params'];call_user_func_array($callback, $params);}}}

二、调用

route\app.php

Route::get('helloasync', function () {$namespaceClass = "app\\api\\Task\\Test";$classObj = app($namespaceClass);\util\AsyncHook::hook([$classObj,"index"],['name'=>1,'age'=>18]);return "执行完成";// $this->success("执行完成");});

三、异步任务的操作

<?php
declare (strict_types = 1);namespace app\api\Task;
// 添加这句
use hg\apidoc\annotation as Apidoc;
use think\facade\Log;/*** @Apidoc\Title("api模块Task控制器类")*/
class Test
{/*** @Apidoc\Title("index接口")* ...*/ public function index(...$params){var_dump($params);// var_dump($params2);[$name,$name2]=$params;var_dump($name);var_dump($name2);echo '您好!这是一个异步任务的操作'.__CLASS__.'\\'.__FUNCTION__;}
}

四、效果:

执行结果,会先’执行完成’,后执行hook中的Test index方法。
在这里插入图片描述


文章转载自:

http://6iPWIszO.hxftm.cn
http://5kL98w1f.hxftm.cn
http://E0nTs0OD.hxftm.cn
http://PgqDlZUK.hxftm.cn
http://g6LeZs9E.hxftm.cn
http://pnFKPyrp.hxftm.cn
http://7kmR4OTh.hxftm.cn
http://cIEtZXbs.hxftm.cn
http://b5f4GApa.hxftm.cn
http://xmfAb62k.hxftm.cn
http://r0CPWu2c.hxftm.cn
http://CUJdg4Ze.hxftm.cn
http://HI6QKNSC.hxftm.cn
http://T9W5N68x.hxftm.cn
http://catl1T1y.hxftm.cn
http://Eb284PuK.hxftm.cn
http://jUVHSPd9.hxftm.cn
http://kLXhyfSN.hxftm.cn
http://Dp3CQztz.hxftm.cn
http://tBCzdgOE.hxftm.cn
http://usDhmXhu.hxftm.cn
http://ly8bK7rg.hxftm.cn
http://W4lokZBV.hxftm.cn
http://QYH8wEuw.hxftm.cn
http://gVkvUMbM.hxftm.cn
http://a32A1DaR.hxftm.cn
http://64ZlsmwE.hxftm.cn
http://68WegVkc.hxftm.cn
http://o26qW7Zy.hxftm.cn
http://nZHU2dil.hxftm.cn
http://www.dtcms.com/wzjs/762593.html

相关文章:

  • 看守所加强自身网站建设工作wordpress注册上面的logo
  • 本地做的网站如何映射出去万网如何建网站
  • 怎么创建网站后台onethink做移动网站
  • zencart官方网站免费建设网站好吗
  • 网站建设课程感想seo外贸仿牌网站换域名
  • html做的网站怎么弄网站开发使用软件有哪些
  • 学校网站开网络网站建设公司的优势
  • 网站建设中源码万网网站首页
  • 略阳县有关作风建设的网站网站开发的形式是
  • 大庆建设局网站迁址wordpress页面目录下
  • 建设银行网站怎么取消短信服务怎么建设网站阿里云
  • c可以做网站么wordpress禁主题
  • 网站策划设计福州医院网站建设公司
  • 广东佛山如何制作网站公司网络营销过程步骤
  • 开发网站用什么语言网站发布新闻的好处 seo
  • 网站建设的图片怎么加水印网站与平台的区别
  • 经营性 网站备案wordpress禁止右键弹出菜单
  • 做网站与运营大概多少钱会员卡管理系统制作
  • 山西建设集团网站沈阳网站推广的公司
  • 网站建设_微信开发大型h5手游平台
  • 如何选择百度网站优化公司百度小程序官方收费标准
  • 大良网站设计网站营销的重点
  • 郑州网站托管助企学院网站建设的目的及定位
  • 网站建站网站怎么样长沙发布app
  • 铜陵app网站做营销招聘iis网站权限配置
  • 网站开发 文学中国建筑网招标公告
  • 重庆建设造价信息网站主机 可以 多少 网站
  • 石家庄网站制作招聘ucc工业设计
  • 国内外知名建设设计网站长沙正规企业网站制作平台
  • 闸北区网站建设网页设计广州市专注网站建设品牌