Swoft 2.0.5 更新,新增高效秒级定时任务、异常管理组件
什么是 Swoft ?
Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。
Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服务治理的最佳选择。
高效秒级定时任务
如下简单几行代码,就定义了一个每秒执行的定时任务,完全可以取代系统定时任务。
<?php declare(strict_types=1);
namespace App\Crontab;
use Swoft\Crontab\Annotaion\Mapping\Cron;
use Swoft\Crontab\Annotaion\Mapping\Scheduled;
/**
* Class CronTask
*
* @since 2.0
*
* @Scheduled()
*/
class CronTask
{
/**
* @Cron("* * * * * *")
*/
public function secondTask()
{
printf("second task run: %s ", date('Y-m-d H:i:s', time()));
}
}
定时任务跟随服务一起启动,将看到如下显示:

异常管理
开发过程中,如果错误提示是一串字符串,不方便业务排除问题,如果使用该组件,所有错误信息将如下显示

更新内容
修复(Fixed):
- 修复提前中断请求逻辑可能导致无法正确的格式化对应的Content-Type f031398
- 修复使用sgo创建子协程,在结束时没有清理与顶级协程的映射关系 de11ae5b
- 修复 Xml 格式解析方法 24d0038
- 修复类代理 Unique 字符串问题 444ddeb
- 修复
context()->get()存在问题以及废弃Context::mustGet()方法 6acc1b5 - 修复接口注入,类名访问错误 2d9a31f
- 修复 模型使用
paginate方法, 结果集没有映射字段3027287 - 修复 websocket server 里,当有多个worker,主动关闭非当前worker连接时报错 7666969
更新(Update):
- 默认的 worker num 设置通过
swoole_cpu_num函数获取 553f6500 - 验证器调整成,默认非必须,用户自己开启 e5b258d
- 不再抛出swoft内部的
ContainerException到用户使用层 1e74893 - console output 新增
confirmselect等交互方法 0181138a
增强(Enhancement):
- console 命令选项设置
CommandOption,现在允许选项描述为多行信息 e5914983 - websocket server 的全部消息发送方法,支持传入
opcode参数 dc164ffe9 - websocket 模块允许设置当前模块的默认
opcode,用于自动处理返回数据设置opcode9e3e9672 - 增强 websocket 相关类,现在消息处理方法允许注入更多数据对象类型
RequestResponse3d6c60b4 - 当worker退出时,websocket server 会自动关闭所有连接 5ea10ecc
- Add Timer 定时器封装 eb92ee6
- Add Coroutine 方法封装 d8c2b88
2.0.5+ 验证器默认关闭,需要开发者手动开启(https://www.swoft.org/docs/2....
资源
- Gitee: https://gitee.com/swoft/swoft
- GitHub: https://github.com/swoft-cloud/swoft
- 官网:https://www.swoft.org
- 文档:https://www.swoft.org/docs
Swoft 2.0.5 更新,新增高效秒级定时任务、异常管理组件的更多相关文章
- Linux下实现秒级定时任务的两种方案
Linux下实现秒级定时任务的两种方案(Crontab 每秒运行): 第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command s ...
- Linux下实现秒级定时任务的两种方案(crontab 每秒运行)
第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command sleep XX //间隔秒数 done 第二种方案,使用crontab ...
- Linux Crontab Shell脚本实现秒级定时任务
一.编写Shell脚本crontab.sh #!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do $( ...
- Linux crontab 实现秒级定时任务
1 crontab 的延时: 原理:通过延时方法 sleep N 来实现每N秒执行. crontab -e 输入以下语句,然后 :wq 保存退出. * * * * * /usr/bin/curl ...
- SQL Server大量数据秒级插入/新增/删除
原文:SQL Server大量数据秒级插入/新增/删除 1.快速保存,该方法有四个参数,第一个参数为数据库连接,第二个参数为需要保存的DataTable,该参数的TableName属性需要设置为数据库 ...
- QPS从0到4000请求每秒,谈达达后台架构演化之路(转载)
https://blog.csdn.net/czbing308722240/article/details/52350219 QPS从0到4000请求每秒,谈达达后台架构演化之路 达达是全国领先的 ...
- Docker 1.13.0 详细更新日志
本文讲的是Docker 1.13.0 详细更新日志[编者的话]Docker发布1.13.0版本,此次版本更新内容较多,以下为该版本具体的变更. 构建 添加在构建时可以指定镜像用作高速缓存源的功能. 这 ...
- plain framework 1 1.0.4 更新 稳定版发布
PF由于各种因素迟迟不能更新,此次更新主要是更新了以往和上个版本出现的内存问题,该版本较为稳定,如果有用到的朋友请更新至此版本. PF 1.0.4 修复1.0.0.3更新后产生的内存问题,可能导致网络 ...
- 关于SubSonic3.0插件更新字符串过长引发的System.Data.SqlClient.SqlException的异常修复
最近公司客服提交了个BUG,说是更新产品详细信息时,有的可以有的更新不了,前段时间一直没空所以暂时放下,刚才又出现这个问题,所以马上处理了一下. 打开项目解决方案,进入DEBUG模式,拿到操作的数据提 ...
随机推荐
- sql 用表组织数据
一.四种完整性约束 1.实体完整性约束:不允许出现相同记录的数据 2.域完整性约束:对字段进行限定,不得插入不符合限定的数据 3.引用完整性:表与表之间的关系 4.自定义完整性约束:开发人员自己设定对 ...
- vue中render: h => h(App)的详细解释
2018年06月20日 10:54:32 H-L 阅读数 5369 render: h => h(App) 是下面内容的缩写: render: function (createEleme ...
- php 调用python接口出现的一系列问题(原)
调用示例代码(python写的一个谷歌翻译接口): $name = '中国'; exec("/mob360/EditImage/venv/bin/python /EditImage/fany ...
- light4j轻量级微服务应用
最近对light-4j轻框架比较感兴趣,于是对现有应用做了一次重构,现将其间的一些点滴所得分享出来. 项目打包 pom.xml配置了两个profile:debug支持mvn exec:exec启动应用 ...
- java编程出现的错误对应的解决方法
error: could not open D:\java\jre1.8\lib\amd64\jvm.cfg 解决方法:把java的环境变量%JAVA_HOME%/bin上移到最上面 优化 查看网页源 ...
- 尚学堂requireJs课程---1、作用域回顾
尚学堂requireJs课程---1.作用域回顾 一.总结 一句话总结: 尚学堂的课程的资料他的官网上面是有的 1.js作用域? ~ js中是函数作用域:局部变量的话要写var关键词 ~ 闭包可以解决 ...
- Mybatis框架学习1:入门
一框架介绍 1.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google c ...
- __declspec(dllexport)的使用
1. 用法 在 VS 的“预编译”选项里定义_EXPORTING宏 #ifdef _EXPORTING #define API_DECLSPEC __declspec(dllexport) #else ...
- openLdap安装教程
环境 操作系统:centOS 7.0 OpenLDAP:2.4.X 安装 从yum源安装 yum install openldap openldap-servers openldap-clients ...
- phpstrom--------config php interpreter
phpstrom是一款比较好用的php代码编辑器,使用phpstrom进行代码编辑时我可能会需要看一下在网页上的实际效果,但是PHPstrom本身只是一款编辑器,不具备运行功能,我们需要自己安装一个服 ...