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

南宁网站建设公司招聘网站技术有哪些

南宁网站建设公司招聘,网站技术有哪些,网站图怎么做才能小而清晰度,网站经营许可备案之前在工作中使用 Laravel Octane 的 concurrently 处理并发时#xff0c;发现在队列和定时任务中不会触发并发效果。经过分析#xff0c;作了如下猜测#xff1a;队列和定时任务都属于一个独立的进程#xff0c;与 Octane 服务无关#xff0c;而 Octane concurrently 恰恰…之前在工作中使用 Laravel Octane 的 concurrently 处理并发时发现在队列和定时任务中不会触发并发效果。经过分析作了如下猜测队列和定时任务都属于一个独立的进程与 Octane 服务无关而 Octane concurrently 恰恰需要在 Octane 环境下才能运行。 后来通过代码进行环境检测和查看 php 的进程证明猜想成立。 info(check env, [served by octane isset($_SERVER[LARAVEL_OCTANE]) ((int)$_SERVER[LARAVEL_OCTANE] 1),on swoole server (extension_loaded(swoole) || extension_loaded(openswoole)) app()-bound(Server::class) ]);为了能够在任意代码中实现并发我们研究参考了 Hyperf 框架关于协程的代码然后抽取了如下两个类 ?phpnamespace App\Services;use App\Exceptions\ParallelExecutionException; use Laravel\Octane\Facades\Octane; use Throwable; use Swoole\Coroutine as Co;class Parallel {protected array $callbacks [];protected array $results [];/*** var Throwable[]*/protected array $throwables [];public function add(callable $callable, $key null): void{if (is_null($key)) {$this-callbacks[] $callable;} else {$this-callbacks[$key] $callable;}}public function wait(bool $throw true): array{if (isset($_SERVER[LARAVEL_OCTANE]) ((int)$_SERVER[LARAVEL_OCTANE] 1)) {return Octane::concurrently($this-callbacks, 300000);}app(log)-useLoggingLoopDetection(false);Co\run(function () {foreach ($this-callbacks as $key $callback) {Co::create(function () use ($callback, $key) {try {$this-results[$key] $callback();} catch (Throwable $throwable) {$this-throwables[$key] $throwable;unset($this-results[$key]);}});}});if ($throw ($throwableCount count($this-throwables)) 0) {$message Detecting . $throwableCount . throwable occurred during parallel execution: . PHP_EOL . $this-formatThrowAbles($this-throwables);$executionException new ParallelExecutionException($message);$executionException-setResults($this-results);$executionException-setThrowAbles($this-throwables);unset($this-results, $this-throwables);throw $executionException;}app(log)-useLoggingLoopDetection(true);return $this-results;}private function formatThrowAbles(array $throwables): string{$output ;foreach ($throwables as $key $value) {$output . sprintf((%s) %s: %s . PHP_EOL . %s . PHP_EOL, $key, get_class($value), $value-getMessage(), $value-getTraceAsString());}return $output;} }?phpnamespace App\Exceptions;use RuntimeException;class ParallelExecutionException extends RuntimeException {protected array $results [];protected array $throwables [];public function getResults(): array{return $this-results;}public function setResults(array $results): void{$this-results $results;}public function getThrowAbles(): array{return $this-throwables;}public function setThrowAbles(array $throwables): array{return $this-throwables $throwables;} }其中第一个类的作用是检测系统是否运行在 Octane 环境下是则调用Octane concurrently否则就执行 Swoole 协程代码使用起来也比较简单 $parallel new Parallel(); $parallel-add(fn() $this-analysisStructure(), structure); $parallel-add(fn() $this-analysisHabit(), habit); [structure $structure,habit $habit, ] $parallel-wait();之所以没有完全使用 Swoole 协程是因为相比之下Octane 代码更加优雅我们在期待着某天更新后Octane concurrently 也能直接在队列中运行使用。 第二个类的作用比较简单就是对协程中异常的一个定义。 另外在分析过程中我们也发现了一个比较有意思的事情 如图所示当我在路由中运行检测代码时Octane 和 Swoole Server 都为 true在控制器中运行检测代码时又只有 Octane 为true为什么会有这样的区分我个人猜测是 Octane 在将框架代码读进内存时特意跳过了控制器中的代码以避免数据更新不及时等问题。 有知道具体原因的小伙伴欢迎留言探讨。
http://www.hkea.cn/news/14385766/

相关文章:

  • 免费建网站 手机网站网站建设用哪种语言
  • 思茅网站建设小程序直播开发
  • 江苏网站推广网络产品推广方法
  • 深圳手机网站制作个人网站模板psd
  • 济南外贸建站网站开发目的意义
  • 万网个人网站建设教程做门户网站用什么系统
  • 云网站注册免费商城系统哪个好
  • 厦门石材网站建设服饰 企业 网站建设
  • 深圳微商城网站制作费用网络广告产生于哪个国家
  • 哪些网站是用h5做的app 网站开发公司电话
  • 未成年做网站邢台公司网站建设
  • 模板手机网站建设公司排名智能开发平台软件
  • 湖北省建设厅网站陕西网络推广公司
  • 旅游网站规划设计方案wordpress add option
  • 聊城做企业网站的遵义新蓝外国语学校网站建设
  • 可以做专利聚类分析的免费网站哪里可以做网页
  • 网站seo入门基础教程书籍wordpress添加邮箱设置
  • php企业网站cms安徽省建设工程招标投标信息网官网
  • 柬埔寨网站建设运营维护公司网站建设选什么服务器
  • 怎么往网站里做游戏浦东新区建设工程安全质量监督站网站
  • 青岛网站建设有哪些公司江西航达建设集团网站
  • 网站建设程序的步骤过程dw做网站模板
  • 最新新闻热点事件50字重庆做seo网站优化选择哪家
  • 朔州城市建设网站wordpress微信小程序
  • 如何查看一个网站是否备案百度关键词搜索指数
  • 网站怎样盗链图片优购物官方网站手机版
  • 网站的特效代码长沙的网站建设
  • 淘宝联盟推广网站怎么建设贵阳哪些公司建网站
  • 婚恋网站的架构做网站标题居中代码
  • 武义住房和城乡建设局网站系统优化软件哪个最好的