ThinkAdmin v5.0 增加自定异步任务机制
ThinkAdmin v5.0 增加自定义任务机制,不再依赖于 think-queue 组件。
去除数据表 system_jobs 和 system_jobs_log,增加 system_queue 表。
关于异步任务处理指令如下:
- 执行
php think xtask:listen
启动异步任务监听守护主进程 - 执行
php think xtask:query
查询正在执行的所有任务进程 - 执行
php think xtask:start
创建异步任务监听守护主进程 - 执行
php think xtask:state
查看异步任务监听主进程状态 - 执行
php think xtask:stop
平滑停止异步任务所有的进程
admin/sys.php 函数增加 sysqueue 函数以方便增加 任务队列。
sysqueue($title, $loade, $later = 0, $data = [], $double = 1)
可以指定任务的标题,执行任务,延时时间,任务附加数据,允许创建重复任务等。
有些任务,在待处理和处理中是不需要再创建重复任务的,$double 就需要设置为0,这是根据标题来识别的,所以标题也可以适当加上个性名称。
自建的异步处理是多进程任务处理,其中 windows 是基于 wmic 指令创建进程实现的,而 linux 则是通过 & 符实现。
因为是异步并列执行,建议自行控制下任务数据,免得过多消耗系统资源而影响项目正常使用。
在部署时,通常我们只需要创建定时器去执行 php think xtask:start
就可以守护异步任务监听进程。
目前,ThinkAmdin V5 自定义异步任务机制支持两种规则机制。
一、自定义单独的处理类,需要继承 app\admin\queue\Queue
抽象类,实现 execute
方法,参数为 $input, $output, $data
其中 input 为 cli 输入对象,output 为 cli 输出对象,而 data 为任务绑定的数据。详情可以阅读:https://gitee.com/zoujingli/ThinkAdmin/blob/master/application/wechat/queue/WechatQueue.php
二、自定义 ThinkPHP 指定,默认使用 Console::call() 去尝试执行传入的指令。如:
sysqueue("同步[{$this->appid}]粉丝列表",'xfans:all', 0, ['appid' => $this->appid], 0);
关于ThinkAdmin更多用法,请移步 https://gitee.com/zoujingli/ThinkAdmin

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
跟我一起认识Little's Law
1.前言 开发的同学或多或少都会跟“性能”这个玩意打交道,本文将要介绍的Little's Law跟衡量性能的常见指标关系密切,所以在引出今天的主角Little's Law之前,有必要先统一一下我们描述“性能”的“基本语言”,毕竟语言不通是没法交流的不是。另外,以下叙述都是我的个人理解,不当之处请指正。 2.“性能”的“基本语言” 不同的服务设备对性能的定义也不同,例如CPU主要看主频,磁盘主要看IOPS。本文主要针对后端的软件服务性能(比如api服务,数据库服务等)展开讨论。限定好范围后就应该给出一个性能的定义了:性能就是服务的处理请求的能力。衡量性能的指标常见的有三个:并发用户数、吞吐量、响应时间。 2.1并发用户数 指真正对服务发送请求的用户数量,需要注意和在线用户数的区别; 比如,某一时刻,在线用户数为1000,其中只有100个用户的操作触发了与远端服务的交互, 那么这时对远端服务来说,并发用户数是100,而不是1000。 2.2吞吐量 单位时间内处理的请求数。 2.3响应时间 对应的英文是response time,也有的地方用 latency表示,即延迟。 需要统计一个时间段...
-
下一篇
SonarQube MyBatis 插件 1.0.1 发布,更新规则描述
MyBatis SonarQube Plugin :自定义规则用于检查 Mybatis Mapper XML 文件中的风险 SQL。 本次更新内容: 更新规则描述 更新 README,增加插件安装指南 推送到 SonarQube 应用市场,可以通过应用市场安装 更多关于 SonarQube MyBatis 插件的详细信息,详见:SonarQube MyBatis Plugin
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器