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

資源

相關文章
相關標籤/搜索