基于swoole的定時器程序,支持秒級處理

fd5f 9年前發布 | 70K 次閱讀 常用工具包 Swoole

Swoole-Crontab(基于Swoole擴展)

1.概述

  • 基于swoole的定時器程序,支持秒級處理.
  • 異步多進程處理。
  • 完全兼容crontab語法,且支持秒的配置
  • 請使用swoole擴展1.7.9以上版本.Swoole
  • </ul>

    2.配置的支持

    具體配置文件請看 src/config/dev/crontab.php
    介紹一下時間配置

    0   1   2   3   4   5
    |   |   |   |   |   |
    |   |   |   |   |   +------ day of week (0 - 6) (Sunday=0)
    |   |   |   |   +------ month (1 - 12)
    |   |   |   +-------- day of month (1 - 31)
    |   |   +---------- hour (0 - 23)
    |   +------------ min (0 - 59)
    +-------------- sec (0-59)[可省略,如果沒有0位,則最小時間粒度是分鐘]

    3.幫助信息

    * Usage: /path/to/php main.php [options] -- [args...]
    * -h [--help]        顯示幫助信息
    * -p [--pid]         指定pid文件位置(默認pid文件保存在當前目錄)
    * -s start           啟動進程
    * -s stop            停止進程
    * -s restart         重啟進程
    * -l [--log]         log文件夾的位置
    * -c [--config]      config文件的位置(可以是文件,也可以是文件夾.
                         如果是文件,則載入指定文件.如果是文件夾,則載入文件夾
                         下的所有文件.)
    * -d [--daemon]      是否后臺運行
    * -r [--reload]      重新載入配置文件
    * -m [--monitor]     監控進程是否在運行,如果在運行則不管,未運行則啟動進程

    4.例子

    你可以在配置文件中加上以下配置:

    return [
        [
            "id"   => "taskid1",
            "name" => "php -i",
            "time" => '* * * * * *',
            "task" => [
                "parse"  => "Cmd",
                "cmd"    => "php -i",
                "output" => "/tmp/test.log"
            ]
        ]
    ]

    然后去到src目錄下,執行

    /path/to/php main.php -s start

    執行完成以后你就可以在/tmp/test.log看到輸出了,每秒輸出一次

    如果你需要寫自己的代碼邏輯,你也可以到plugin目錄下,實現一個PluginBase.class.php接口的類.
    在其中寫自己的邏輯代碼。

    項目主頁:http://www.baiduhome.net/lib/view/home/1419837392500

 本文由用戶 fd5f 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!