热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

swoole设置定时器、easyswoole框架のCrontab定时器

swoole设置定时器思考:比如新闻排行榜、商品排行榜,一般都不是即时生成的。(因为数据量大、并发高)那么怎么做呢?1、结合消息队列触发后台一个任务2、结合定时任务

swoole设置定时器

思考:
比如新闻排行榜、商品排行榜,一般都不是即时生成的。(因为数据量大、并发高)
那么怎么做呢?
1、结合消息队列触发后台一个任务
2、结合定时任务,定时生成一些静态资源

swoole提供了类似Javascript的setInterval/setTimeout异步高精度定时器,粒度为毫秒级。
https://wiki.swoole.com/wiki/page/480.html

我们来简单测试一下:

 $serv = new swoole_server("10.211.55.17",9501); $serv->on("WorkerStart",function ($serv,$woker_id){ if ($woker_id == 0){ //每隔1000ms触发一次 swoole_timer_tick(1000, function ($timer_id) { echo "hello\n"; }); } }); $serv->on("receive",function ($serv,$fd,$from_id,$data){ $serv->send($fd,"Server:".$data); }); $serv->start();

这里写图片描述
果然是每1秒钟(1000毫米)打印一次hello

easyswoole定时器

easyswoole框架中对原生的毫秒级定时器进行了封装,以便开发者快速调用 Swoole 的原生定时器。
文档地址:
https://www.easyswoole.com/Manual/2.x/Cn/_book/Advanced/timer.html

Crontab 定时器

EasySwoole支持用户根据Crontab规则去添加定时器。时间最小粒度是1分钟。
文档地址:
https://www.easyswoole.com/Manual/2.x/Cn/_book/Component/crontab.html

EasySwooleEvent.phpuse EasySwoole\Core\Component\Crontab\CronTab;

    public static function mainServerCreate(ServerManager $server,EventRegister $register): void {

        CronTab::getInstance()->addRule('test1','@daily',function (){
            //每天执行的任务
            //... 比如统计前一天销售最好的商品
            // 这这里完成统计查询写入数据库
        })->addRule('test2','*/1 * * * *',function (){
            //每一分钟执行的任务
            //...比如订单超时状态的监控
        });
    }

能在程序代码里写Crontab计划任务 比在linux系统中方便多了。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
author-avatar
一大书虫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有