Swoft 2.0.5 更新,新增高效秒级定时任务、异常管理组件

什么是 Swoft ?

Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 同样,内置协程网络服务器及经常使用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有相似 Go 语言的协程操做方式,有相似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。php

Swoft 经过长达三年的积累和方向的探索,把 Swoft 打形成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服务治理的最佳选择。html

高效秒级定时任务

以下简单几行代码,就定义了一个每秒执行的定时任务,彻底能够取代系统定时任务。git

<?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()));
    }
}
复制代码

定时任务跟随服务一块儿启动,将看到以下显示:github

异常管理

开发过程当中,若是错误提示是一串字符串,不方便业务排除问题,若是使用该组件,全部错误信息将以下显示:web

更新内容

修复(Fixed):bash

  • 修复提早中断请求逻辑可能致使没法正确的格式化对应的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 新增 confirm select 等交互方法 0181138a

加强(Enhancement):websocket

  • console 命令选项设置 CommandOption,如今容许选项描述为多行信息 e5914983
  • websocket server 的所有消息发送方法,支持传入 opcode 参数 dc164ffe9
  • websocket 模块容许设置当前模块的默认 opcode,用于自动处理返回数据设置 opcode 9e3e9672
  • 加强 websocket 相关类,如今消息处理方法容许注入更多数据对象类型 Request Response 3d6c60b4
  • 当worker退出时,websocket server 会自动关闭全部链接 5ea10ecc
  • Add Timer 定时器封装 eb92ee6
  • Add Coroutine 方法封装 d8c2b88

2.0.5+ 验证器默认关闭,须要开发者手动开启(www.swoft.org/docs/2.x/zh…)swoole

资源

相关文章
相关标签/搜索