资讯专栏INFORMATION COLUMN

让TP5.0在SWOOLE上飞起来

宠来也 / 3019人阅读

摘要:目前,官方已经提供了集成程度以前优雅很多不过的集成方式确实有些鸡肋。所以看了下,为开发了一个扩展包,可以采用下载开发之前,需要先熟悉的生命周期,不然就无从下手了。

TP-SWOOLE

目前,TP5.1官方已经提供了think-swoole2.0,集成程度以前优雅很多,不过5.0的集成方式确实有些鸡肋。所以看了下2.0,为5.0开发了一个扩展包,可以采用composer下载

composer require xaviertony/xavier-swoole

开发之前,需要先熟悉TP5.0的生命周期,不然就无从下手了。

由于TP主要在Apache或者NGINX下运行,每次运行结束都会进行释放,而swoole则是常住内存,TP5很多类都由单例实现,所以难免会入坑,其中大坑主要是request,由于启动后请求被实例化,如果不删除请求势力,以后每次都是采用这个实例,造成无法正常访问页面,因为每次请求达到后需要先将请求实例删除

public static function deletethis()
    {
        if (!is_null(self::$instance)) {
            self::$instance=null;
        }
    }

第三方包的配置文件必须在application/extra下,文件名为swoole.php

 "0.0.0.0", // 监听地址
    "port"                  => 9501, // 监听端口
    "mode"                  => "", // 运行模式 默认为SWOOLE_PROCESS
    "sock_type"             => "", // sock type 默认为SWOOLE_SOCK_TCP
    "app_path"              => getcwd() . "/application", // 应用地址 如果开启了 "daemonize"=>true 必须设置(使用绝对路径)
    "file_monitor"          => false, // 是否开启PHP文件更改监控(调试模式下自动开启)
    "file_monitor_interval" => 2, // 文件变化监控检测时间间隔(秒)
    "file_monitor_path"     => [], // 文件监控目录 默认监控application和config目录
    // 可以支持swoole的所有配置参数
    "pid_file"              => getcwd()  . "/runtime/swoole.pid",
    "log_file"              => getcwd()  . "/runtime/swoole.log",
    "task_worker_num"       => 20,
    //"document_root"         => getcwd() . "public",
    //"enable_static_handler" => true,
    "daemonize"                => 1,//守护
    "worker_num" => 8,    //worker process num
    "max_request" => 10000,
];

启动命令

php think swoole start

守护启动

php think swoole start -d

停止服务

php think swoole stop

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29251.html

相关文章

  • 利用客服消息和模板消息实现微信群发(突破群发接口的限)

    摘要:此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。 1、关于群发接口和消息接口 关于群发接口1.订阅号每天可以群发消息一条,服务号每月(自然月)四条的群发权限。开发者模式下,可以通过高级群发接口,实现更灵活的群发能力。2.注意● 对于认证订阅号,群发接口每天可成功调用1次,此次群发可选择发送给全...

    Gemini 评论0 收藏0
  • PHP程序员如何优雅的搬砖

    摘要:这是年前的最后一篇文章,本章来聊一聊程序员如何优雅的搬砖搬砖既为达到目的,不断重复某项工作的行为,其实与造轮子一样,不谋而合基础这里的基础并非单指其技术能力,技术底蕴,更有意体现程序员在初期不断重复的工作而获得的感想与意识。 showImg(https://segmentfault.com/img/bVbnSFx?w=800&h=444); 我一生的文章都会放在这里,我的博客,我希望每...

    妤锋シ 评论0 收藏0
  • 代码飞起——高性能Julia学习笔记(三)

    摘要:前面两篇让代码飞起来高性能学习笔记一让代码飞起来高性能学习笔记二,介绍了如何写出高性能的代码,这篇结合我最近的项目,简单测试对比一下各种语言用算法计算的效率。下一篇,我们就来看一下中如何利用并行进一步提高效率。 前面两篇让代码飞起来——高性能 Julia 学习笔记(一) 让代码飞起来——高性能 Julia 学习笔记(二), 介绍了如何写出高性能的 Julia 代码, 这篇结合我最近的项...

    edgardeng 评论0 收藏0
  • Websocket解析及实现

    摘要:早期的轮询是通过不断自动刷新页面而实现的。长轮询的另一个问题是缺乏标准实现。服务器端接到这个请求后作出回应并不断更新连接状态以保证客户端和服务器端的连接不过期。协议解析协议包含两部分一部分是握手,一部分是数据传输。 Websocket是什么? Websocket是一个因为应用场景越来越复杂而提出的,针对浏览器和web服务器之间双向持续通信而设计,而且优雅地兼容HTTP的协议(我猜想:同...

    XboxYan 评论0 收藏0

发表评论

0条评论

宠来也

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<