五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

舊版(3.5.x版本之前)定時任務

開發者執行定時任務會通過 Linux 的 Crontab 去實現,不方便去管理。EasySwoole 提供了根據 LinuxCrontab 規則的定時任務,最小粒度為1分鐘。

創建一個定時任務

需要定義一個定時任務類繼承 \EasySwoole\EasySwoole\Crontab\AbstractCronTask。

定義執行規則

public static function getRule(): string
{
    // 定義執行規則 根據Crontab來定義
    return '*/1 * * * *';
}

定義 Crontab 名稱

public static function getTaskName(): string
{
    // 定時任務的名稱
    return 'custom crontab';
}

定義執行邏輯

public function run(int $taskId, int $workerIndex)
{
    // 定時任務的執行邏輯

    // 開發者可投遞給task異步處理
    TaskManager::getInstance()->async(function (){
        // todo some thing
    });
}

定義異常捕獲

public function onException(\Throwable $throwable, int $taskId, int $workerIndex)
{
    // 捕獲run方法內所拋出的異常
}

注冊 Crontab

EasySwoole 框架全局的 mainServerCreate 事件(即項目根目錄的 EasySwooleEvent.php 文件)中進行定時任務注冊

Crontab::getInstance()->addTask(CustomCrontab::class);

完整示例代碼

<?php

namespace App\Crontab;

use EasySwoole\EasySwoole\Crontab\AbstractCronTask;
use EasySwoole\EasySwoole\Task\TaskManager;

class CustomCrontab extends AbstractCronTask
{
    public static function getRule(): string
    {
        // 定義執行規則 根據Crontab來定義
        return '*/1 * * * *';
    }

    public static function getTaskName(): string
    {
        // 定時任務的名稱
        return 'CustomCrontab';
    }

    public function run(int $taskId, int $workerIndex)
    {
        // 定時任務的執行邏輯
        // 例如:每隔1分鐘打印當前時間
        echo date('Y-m-d H:i:s') . PHP_EOL;
    }

    public function onException(\Throwable $throwable, int $taskId, int $workerIndex)
    {
        // 捕獲run方法內所拋出的異常
    }
}

Crontab表達式

通用表達式:

    *    *    *    *    *
    -    -    -    -    -
    |    |    |    |    |
    |    |    |    |    |
    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7)
    |    |    |    +---------- month (1 - 12)
    |    |    +--------------- day of month (1 - 31)
    |    +-------------------- hour (0 - 23)
    +------------------------- min (0 - 59)

特殊表達式:

@yearly                    每年一次 等同于(0 0 1 1 *) 
@annually                  每年一次 等同于(0 0 1 1 *)
@monthly                   每月一次 等同于(0 0 1 * *) 
@weekly                    每周一次 等同于(0 0 * * 0) 
@daily                     每日一次 等同于(0 0 * * *) 
@hourly                    每小時一次 等同于(0 * * * *)

Crontab 管理

EasySwoole 內置對于 Crontab 的命令行操作,方便開發者友好的去管理 Crontab

可執行 php easyswoole.php crontab -h 來查看具體操作。

查看所有注冊的Crontab

php easyswoole.php crontab show

停止指定的Crontab

php easyswoole.php crontab stop --name=TASK_NAME

恢復指定的Crontab

php easyswoole.php crontab resume --name=TASK_NAME

立即跑一次指定的Crontab

php easyswoole.php crontab run --name=TASK_NAME

版本強調

EasySwoole 3.3.0 版本如何定義:

<?php
namespace App\Crontab;

use EasySwoole\EasySwoole\Crontab\AbstractCronTask;

class TaskOne extends AbstractCronTask
{

    public static function getRule(): string
    {
        // TODO: Implement getRule() method.
        // 定時周期 (每小時)
        return '@hourly';
    }

    public static function getTaskName(): string
    {
        // TODO: Implement getTaskName() method.
        // 定時任務名稱
        return 'taskOne';
    }

    static function run(\swoole_server $server, int $taskId, int $fromWorkerId,$flags=null)
    {
        // TODO: Implement run() method.
        // 定時任務處理邏輯
        var_dump('run once per hour');
    }
}
主站蜘蛛池模板: 欧美日韩专区国产精品 | 久久ri精品高清一区二区三区 | 91精品国产色综合久久不卡蜜 | 欧美中文综合在线视频 | 成人久久电影 | 日韩午夜在线视频 | 欧美aaaaaa级爽激情会所 | 播五月综合| 狠狠久久久久综合网 | 欧美日韩亚洲综合 | 色综合蜜桃视频在线观看 | 激情在线网站 | 五月天色婷婷综合 | 欧美老人性生活视频 | 视频在线高清完整免费观看 | 色系视频在线观看免费观看 | 99在线精品视频在线观看 | www色婷婷| 久草视频免费播放 | 免费免播放器在线视频观看 | 国产成人aa视频在线观看 | 4399影视免费观看高清直播 | 女人30情定水舞间 | 色偷偷亚洲男人天堂 | 国产高清一级在线观看 | 日韩欧美精品在线观看 | 九月激情网| 四虎成人精品国产一区a | 国产精品视频一区二区三区小说 | 成人伊人青草久久综合网下载 | 澳门久久精品 | 久久99爰这里有精品国产 | 国产传媒一区二区三区四区五区 | 四虎影永久在线观看网址 | 人阁色第四影院在线电影 | 国产性一交一乱一伦一色一情 | 国产精品久久久久久网站 | 九九热视频免费在线观看 | 国产日韩一区 | 国产色婷婷免费视频 | 国产中文字幕视频在线观看 |